fbpx

Problema #3286 – nrnot – Rezolvari PBInfo

de Mihai-Alexandru

Cerința

Fișierul nrnot.in conține pe prima linie un număr natural n (n[2,107]n[2,107]) , iar pe următoarele linii un șir de cel mult 1000 numere naturale din intervalul [1,n]. Numerele sunt ordonate descrescător și sunt separate prin câte un spațiu. Se cere să se determine numărul valorilor naturale distincte din intervalul [1,n] care NU se găsesc în șir.

Date de intrare

Fișierul de intrare nrnot.in conține pe prima linie numărul n, iar pe următoarele linii numere naturale separate prin spații.

Date de ieșire

Fișierul de ieșire nrnot.out va conține pe prima linie numărul k, reprezentând numărul de valori naturale distincte din intervalul [1,n] care nu se găsesc în șir.

Restricții și precizări

  • 2 ≤ n ≤ 10.000.000
  • numerele de pe a doua linie a fișierului de intrare vor fi mai mici decât 10.000.000
  • se recomandă evitarea memorării numerelor date într-un tablou sau în altă structură similară!

Exemplu

nrnot.in

10
8 8 8 5 3 3

nrnot.out

7

Explicație

În fișierul de intrare nu se găsesc valorile 10 9 7 6 4 2 1.

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

ifstream cin("nrnot.in");
ofstream cout("nrnot.out");

int main(){
    int x, n, cnt = 0, val;
    cin >> n;
    while(cin >> x){
        if(x < n)
            cnt += n - x;
        n = x - 1;
        val = x;
    }
    cnt += val - 1;
    cout << cnt;
    return 0;
}
Comentarii

S-ar putea sa iti placa