Informatică, întrebare adresată de lucamold1, 8 ani în urmă

Cerința
Se dau n numere naturale. Determinați cele mai mici două numere dintre cele introduse care au ultimele două cifre egale. Dacă nu există cel puțin două astfel de numere se va afișa numere insuficiente.

Date de intrare
Fișierul de intrare minimdoua.in conține pe prima linie numărul n, iar pe a doua linie n numere naturale separate prin spații.

Date de ieșire
Fișierul de ieșire minimdoua.out va conține pe prima linie numerele minim1 si minim2, reprezentând minimele cerute, în ordine crescătoare, dacă fișierul de intrare conține cel puțin două astfel de numere, respectiv numere insuficiente, în caz contrar.

Restricții și precizări
1 ≤ n ≤ 200
pentru fiecare număr x de pe a doua linie a fișierului de intrare este îndeplinită relația 0 ≤ x ≤ 1.000.000
minimele cerute vor avea cel puțin două cifre
Exemplul 1:
minimdoua.in

7
12 55 112 322 477 115 7
minimdoua.out

55 322
Exemplul 2:
minimdoua.in

6
12 55 112 3 4774 115
minimdoua.out

numere insuficiente
Explicație
În fișierul de intrare este doar un singur număr cu proprietatea cerută.

Răspunsuri la întrebare

Răspuns de ploPLO123
1

Răspuns:

#include <iostream>

#include <fstream>

using namespace std;

const int VALMAX = 1e6;

int main(){

   ifstream fin( "minimdoua.in" );

   ofstream fout( "minimdoua.out" );

   int n, i, minim1, minim2, a;

   minim1 = minim2 = VALMAX + 1;

   fin >> n;

   for ( i = 0; i < n; i ++ ) {

       fin >> a;

       if ( a % 100 % 11 == 0 ) {

           if ( a <= minim1 ) {

               minim2 = minim1;

               minim1 = a;

           } else if ( a < minim2 )

               minim2 = a;

       }

   }

   if ( minim2 == VALMAX + 1 ) {

       fout << "numere insuficiente";

   } else

       fout << minim1 << ' ' << minim2;

   return 0;

}

Explicație:

Alte întrebări interesante