Cerința
Exact așa cum spuneam Alex e un băiat năzdrăvan! De data aceasta boacăna pe care a făcut-o l-a determinat pe profesorul de informatică să îi spună că nu va mai fi iertat și pentru această boacănă așa că îi dă de ales ori îl va asculta doar pe el și restul copiilor vor scăpa ori va dă test tuturor din clasă. Alex este conștient că nu trebuie să fie pedepsiți toți pentru greșeala lui așa ca decide ca doar el trebuie să răspundă! Profesorul complet degajat îi da problema:
Se dau două șiruri de câte n
valori notate A
și B
. Pentru fiecare pereche \( A_i B_i \) se calculează resturile împărțirii la 6669666
a lui \( {A_i}^{B_i} \). Ajutați-l pe Alex să determine suma acestor resturi.
Date de intrare
Fișierul de intrare test.in
conține pe prima linie numărul n
, iar pe a doua linie n
numere naturale separate prin spații reprezentând elementele șirului A
și apoi pe următoarea linie n
numere naturale reprezentând elementele șirului B
.
Date de ieșire
Fișierul de ieșire test.out
va conține pe prima linie numărul S
, reprezentând rezultatul suma cerută.
Restricții și precizări
1 ≤ n ≤ 1000
- numerele de pe a doua linie a fișierului de intrare vor fi mai mici decât
4.294.967.296
- desigur că dacă îl veți ajuta Alex vă va răsplăti cu o bere sau cu un suc în funcție de vârstă
Exemplu
test.in
5 2 3 4 5 6 1 2 3 4 5
test.out
8476
Explicație
S-a calculat 2
1
+3
2
+4
3
+5
4
+6
5
=8476
.
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 Test:
#include <fstream>
#define mod 6669666
#define Maxx 1001
using namespace std;
ifstream fin("test.in");
ofstream fout("test.out");
unsigned long long A[Maxx],B[Maxx],i,ans,rez,n;
int main()
{
fin>>n;
for (i=1;i<=n;i++)
fin>>A[i],A[i]%=mod;
for (i=1;i<=n;i++)
fin>>B[i];
for (i=1;i<=n;i++)
{
ans=1;
while (B[i]!=0)
{
if (B[i]%2==0)
{
A[i]=A[i]*A[i]%mod;
B[i]/=2;
}
else
{
ans=(ans*A[i])%mod;
A[i]=A[i]*A[i]%mod;
B[i]/=2;
}
}
rez+=ans;
}
fout<<rez;
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 #2404 Test
Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #2404 Test 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!