Informatică, întrebare adresată de davidalexandru9, 9 ani în urmă

#include<fstream>#include<iostream>using namespace std;ifstream fin("42.in");int n, m, i, a[10002], b[10002], j, stop, aux;int main(){    fin>>n;    m=0;    for(i=1;i<=n;i++)        fin>>a[i];    for(i=1;i<n;i++)    {        stop=0;        for(j=i+1;j<n and stop==0;j++)        {            if(a[i]==a[j])                stop++;        }        if(stop==0) b[++m]=a[i];    }    for(i=1;i<m;i++)        for(j=i+1;j<=m;j++)    {        if(b[i]>b[j])        {            aux=b[i];            b[i]=b[j];            b[j]=aux;        }    }    for(i=1;i<=m;i++)        cout<<b[i]<<" ";    fin.close();    return 0;}

///ce este gresit la acest cod
///problema 4 din poza

Anexe:

Răspunsuri la întrebare

Răspuns de radutanasa86
1
Pai in primul rand algoritmul tau are aproximativ n^2 operatii+memorie suplimentara care ar insemna din datele din enunt 100000^2 operatii...destul de mult.In enunt specifica , ca numerele au maxim doua cifre deci te poti gandi sa faci cu vectoi de frecventa.Complexitate O(n) si ca memotie trebuie sa folosesti un vector de maxim 100 de componente.Succes si La multi ani!

Alte întrebări interesante