fbpx

Problema #249 – PozitieX – Rezolvari PBInfo

de Mihai-Alexandru

Cerinţa

Se dă un număr natural X şi un şir cu n numere naturale distincte două câte două. Să se determine poziţia pe care s-ar afla numărul X în şirul ordonat crescător.

Date de intrare

Fişierul de intrare pozitiex.in conţine pe prima linie numerele X şi n. Urmează n numere naturale, dispuse pe mai multe linii, separate prin spaţii.

Date de ieşire

Fişierul de ieşire pozitiex.out va conţine pe prima linie numărul p, reprezentând poziţia în şirul ordonat crescător a primului element din şirul dat. Dacă numărul X nu apare în şir, se va afişa mesajul NU EXISTA.

Restricţii şi precizări

  • 1 ≤ n ≤ 10000
  • X şi elementele şirului vor avea cel mult 9 cifre

Exemplu

pozitiex.in

79 6
267 13 45 628 7 79 

pozitiex.out

4

Explicație

Şirul sortat este 7 13 45 79 267 628. În acest şir, valoarea 79 se află pe poziţia a 4-a.

#include <bits/stdc++.h>

using namespace std;
ifstream fin("pozitiex.in");
ofstream fout("pozitiex.out");
int main()
{
    int x , n , cnt = 0 , a[10001];
    fin >> x >> n;
    for (int i = 0 ; i < n ; ++i) fin >> a[i];
    sort(a,a+n);
    for (int i = 0 ; i < n ; ++i)
    {
        if (a[i] == x)
        {
            fout << i+1;
            cnt++;
        }
    }
    if (cnt == 0)
    fout << "NU EXISTA";

    fin.close();
    fout.close();

    return 0;
}
Comentarii

S-ar putea sa iti placa