Informatică, întrebare adresată de nutella4ever, 9 ani în urmă

Cerinţa
Se dă un şir cu n numere naturale distincte două câte două. Să se determine poziţia pe care s-ar afla primul element al şirului în şirul sortat.

Date de intrare
Fişierul de intrare pozitie.in conţine pe prima linie numărul n. Urmează n numere naturale, dispuse pe mai multe linii, separate prin spaţii.

Date de ieşire
Fişierul de ieşire pozitie.out va conţine pe prima linie numărul p, reprezentând poziţia în şirul sortat a primului element din şirul dat.

Restricţii şi precizări
1 ≤ n ≤ 10000
elementele şirului vor avea cel mult 9 cifre
numerotarea elementelor se face de la 1

Răspunsuri la întrebare

Răspuns de rossetta
2
Se numara cate elemente sunt mai mici decat primul element.

#include <iostream>
using namespace std;
int main() {
  freopen("pozitie.in", "r", stdin);
  freopen("pozitie.out", "w", stdout);
  int n, i, a,b, nr = 0;
  cin >> n;
  cin >> a;
  for ( i = 1; i < n ; i++) {
    cin >> b ;
    if (a > b)
      nr ++;
  }
    cout << nr + 1;  
    return 0;
}


nutella4ever: nu am lucrat niciodata cu freopen, stdin, stdout; ce inseamna?
rossetta: sunt fisiere...au o alta sintaxa...poti sa le inlocuiesti cu sintaxa invatata la scoala
Răspuns de Utilizator anonim
4
#include <iostream>
#include <fstream>
using namespace std;

int main()
{
    int n, v[10001], x = 0;
    ifstream in("pozitie.in");
    ofstream out("pozitie.out");
    in >> n;
    for (int i=0; i<n; i++) in >> v[i];
    for (int i=1; i<n; i++)
        if (v[i]<v[0]) x ++;
    out << x+1;
    return 0;
}

Alte întrebări interesante