fbpx

Problema #239 – NrLipsa – Rezolvari PBInfo

de Mihai-Alexandru

Cerinţa

Se dau mai multe numere naturale cu cel mult 9 cifre fiecare. Să se determine cele mai mari două numere de 3 cifre care nu se găsesc printre numerele date.

Date de intrare

Fişierul de intrare nrlipsa.in conţine cel mult 100000 de numere, dispuse pe mai multe linii, numerele de pe fiecare linie fiind separate prin unul sau mai multe spaţii.

Date de ieşire

Fişierul de ieşire nrlipsa.out va conţine pe prima linie cele mai mari două numere de trei cifre care nu apar în fişierul de intrare, ordonate descrescător, separate prin exact un spaţiu.

Restricţii şi precizări

  • dacă nu există două numere de trei cifre care să nu se afle în fişierul de intrare atunci se va afişa mesajul NU.

Exemplu

nrlipsa.in

12 2345 123 67 989 6 999
123 67 989 999

nrlipsa.out

998 997
#include <bits/stdc++.h>
using namespace std;

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

int main()
{
    int f[1000001]={0};
    int a=-1 , b=-1 , ok = 0 , n;
    fin >> n;
    int x;
    while(fin >> x)
    {
        if(x < 1000)
            f[x]++;
    }
    for(int i = 999 ; i >= 100 ; i--)
    {
        if(f[i]==0 && ok < 2)
        {
            if(ok==0)
            {
                a=i;
            }
            if(ok==1)
            {
                b=i;
            }
            ok++;
        }
    }
    if(ok==2)
        fout << a << ' ' << b;
    if(ok==0)
        fout << "NU";
    else if(ok < 2)
        fout << "NU EXISTA";
    return 0;
}
Comentarii

S-ar putea sa iti placa