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

Am nevoie de ajutor!!
In fisierul bac.in se citeste pe prima linie un numar natural n iar pe a doua linie n numere (de cel mult 4 cifre). Scrieti un program C++ care determina si scrie in fisierul bac.out toate numerele citite din fisierul bac.in care apar de cel putin 2 ori , sortate in ordine crescatoare.
ex. n=10
12 45 65 12 45 77 98 89 77 11
se va afisa: 12 45 77


artur99: Ceva limite?
artur99: :))
artur99: La numerele citite?
artur99: Aa, acum am văzut că 4 cifre :))

Răspunsuri la întrebare

Răspuns de stassahul
4
#include <fstream>
#include <algorithm>

using namespace std;

ifstream fin("bac.in");
ofstream fout("bac.out");

int n,a[10001],k,l;

int main ()

{

    fin >> n;

    for(int i=1;i<=n;i++)
        fin >> a[i];

    sort(a,a+n);

    for(int i=1;i<=n;i++)
    {
        if(i>1 and a[i]==k and l==0)
            cout << a[i] << " ", l++;
        if(a[i]!=k) l=0;
        k=a[i];
    }


    return 0;
}


stassahul: P.s. cred ca minimum 10000 numere iti ajung
artur99: Super tare ideea (y) :))) Dar nu ar fi 100% dacă s-ar cere și performanță
roxanapavanoszqm2: E ok oricum, ms pt idee, m-ai salvat
Alte întrebări interesante