Cerința
Se dă un şir cu n
numere naturale nenule. Aflaţi câte secvenţe din şir au produsul mai mic decât un număr natural p
dat.
Date de intrare
Fișierul de intrare produs2.in
conține pe prima linie numerele n
şi p
, iar pe a doua linie n
numere naturale nenule separate prin spații, reprezentând elementele şirului.
Date de ieșire
Fișierul de ieșire produs2.out
va conține pe prima linie numărul S
, reprezentând numărul secvenţelor din şir având produsul mai mic decât p
.
Restricții și precizări
1 ≤ n ≤ 1.000.000
1 < p ≤ 2.000.000.000
- numerele din şir vor fi mai mici decât
1.000
Exemplu
produs2.in
5 10 1 2 3 4 2
produs2.out
9
Explicație
Avem 9
secvenţe în şir cu produsul mai mic decât 10
:
1 |
2 |
1,2 |
1,2,3 |
2,3 |
3 |
4 |
4,2 |
2 |
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 produs2:
#include <fstream>
using namespace std;
ifstream f("produs2.in");
ofstream g("produs2.out");
long long i , n , p , nr , prod , j , a[1000002] ;
int main()
{
f >> n >> p ;
for ( i = 1 ; i <= n ; i++ ) f >> a[i] ;
nr = 0 ;
i = 1 ;
j = 0 ;
prod = 1 ;
while ( j < n )
{
j++ ;
prod = prod * a[j] ;
if ( prod < p ) nr = nr + j - i + 1 ;
else {
while ( prod >= p ) { prod = prod / a[i] ; i++ ; }
nr=nr+j-i+1;
}
}
g << nr ;
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 #1350 produs2
Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #1350 produs2 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!