Cerința
Se dă un număr natural n
(1≤n≤10
6
), și un șir cu cel mult 1000000
de elemente, numere naturale de forma 10
p
(0≤p≤9
). Se cere să se afișeze numărul care ar apărea pe poziția n
în șirul ordonat crescător. Dacă șirul are mai puțin de n
termeni, se afișează mesajul Nu exista
.
Date de intrare
Fișierul de intrare puteri6.in
conține pe prima linie numărul n
, iar pe a doua linie elementele șirului dat, separate prin spații.
Date de ieșire
Fișierul de ieșire puteri6.out
va conține pe prima linie numărul care ar apărea pe poziția n
în șirul ordonat crescător sau mesajul Nu exista
, dacă șirul are mai puțin de n
termeni.
Restricții și precizări
- Pentru determinarea numărului cerut se utilizează un algoritm eficient din punctul de vedere al timpului de executare. Se recomandă evitarea memorării valorilor elementelor din șir într-un tablou sau în altă structură de date similară.
Exemplu
puteri6.in
5 100 100000 1 100000 1000 100 10
puteri6.out
1000
Cum e corect?
cout < "As la info";
cout << "As la info";
cout >> "As la info";
Felicitări! Poți mai mult?
Avem sute de probleme pentru tine, fiecare cu explicații ușor de înțeles.
Greșit, dar nu-i bai!
Antrenează-te cu sutele de probleme pe care ți le-am pregătit. Îți explicăm fiecare problemă în parte.
Rezolvare
Iată rezolvarea de 100 de puncte pentru problema Puteri6:
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("puteri6.in");
ofstream fout("puteri6.out");
int v[10];
int main(){
int x , n;
fin >> n;
while(fin >> x)
{
int p = 0;
while(x > 1)
p++, x /=10;
v[p] ++;
}
int p = 0, s = 0;
while(p < 10 && s + v[p] < n)
s += v[p], p ++;
if(p < 10)
{
x = 1;
while(p)
x *= 10, p --;
fout << x << endl;
}
else
fout << "Nu exista
";
fin.close();
fout.close();
return 0;
}
Atenție
Enunțurile afișate pe această pagină aparțin exclusiv site-ului PbInfo. Astfel, pentru ștergerea conținutului, puteți să ne contactați la adresa .
Rezolvarea problemei #2843 Puteri6
Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #2843 Puteri6 de pe PbInfo.ro. Atenție: nu încurajăm copiatul codului! Totuși, credem cu tărie că analizarea unei soluții corecte este o metodă foarte ușoară de a învăța informatică, astfel că oferim sursele pentru peste 1500 de probleme de pe platforma PbInfo.ro.
Pentru rezolvări PbInfo de la peste 1500 de probleme, vă invităm să intrați pe site-ul nostru!