fbpx

Problema #809 – NrLipsa1 – Rezolvari PBInfo

de Mihai-Alexandru

Cerința

Fișierul de intrare conține cel puțin 3 și cel mult 1 000 000 de numere naturale. Se cere să se afișeze în fișierul de ieșire, separate printr-un spaţiu, două numere distincte, anume cel mai mic număr par cu două cifre și cel mai mare număr par cu două cifre care NU fac parte din şir.

Dacă nu există două astfel de valori, în fișierul de ieșire se afişează mesajul nu exista.

Date de intrare

Fișierul de intrare nrlipsa1.in conține cel puțin 3 și cel mult 1.000.000 de numere naturale, separate prin câte un spațiu, dispuse pe mai multe linii.

Date de ieșire

Fișierul de ieșire nrlipsa1.out va conține pe prima linie valorile cerute, separate prin câte un spațiu, sau mesajul nu exista.

Restricții și precizări

  • numerele din fișierul de intrare vor fi din intervalul (0, 1 000 000 000)

Exemplu

nrlipsa1.in

7 2 40 5 10 15 11 12 18 350

nrlipsa1.out

14 98
#include <bits/stdc++.h>
using namespace std;

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

int main()
{
    int f[100]={0};
    int tmp , a , b , ok=0;
    while(fin >> tmp)
    {
        if(tmp>9 && tmp<100)
            f[tmp]++;
    }
    for(int i = 10 ; i <= 98 ; i+=2)
    {
        if(f[i]==0)
        {
            a=i;
            ok++;
            break;
        }
    }
    for(int i = 98 ; i >= 10 ; i -=2)
    {
        if(f[i]==0)
        {
            b=i;
            ok++;
            break;
        }
    }
    if(ok==2 && a!=b)
    {
        fout << a << ' ' << b;    
    }
    else
    fout << "nu exista";
    return 0;
}
Comentarii

S-ar putea sa iti placa