Cerința
Se dă un număr natural, n
(n∈[2,5000]
), și un șir de 2·n
numere naturale din intervalul [0,5]
. Se cere să se determine valoarea obținută însumând toate produsele de forma x·y
, unde x
și y
sunt numere de paritate diferită, x
fiind printre primii n
termeni ai șirului dat, iar y
printre ultimii n
termeni ai acestui șir. Dacă nu există niciun astfel de produs, valoarea cerută este nulă.
Date de intrare
Fișierul de intrare parimpar1.in
conține pe prima linie numărul n
, iar pe a doua linie 2·n
numere naturale separate prin spații.
Date de ieșire
Fișierul de ieșire parimpar1.out
va conține pe prima linie numărul S
, reprezentând suma cerută.
Restricții și precizări
- Pentru determinarea numărului cerut utilizați un algoritm eficient din punctul de vedere al timpului de executare și al memoriei necesare.
- Se recomandă evitarea memorării elementelor șirului dat într-un tablou sau în alte structuri de date similare.
Exemplu
parimpar1.in
5 1 2 0 0 5 4 2 3 1 0
parimpar1.out
44
Explicație
1·4+1·2+1·0+2·3+2·1+0·3+0·1+0·3+0·1+5·4+5·2+5·0=44
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 ParImpar1:
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("parimpar1.in");
ofstream fout("parimpar1.out");
int main(){
int x, s1p = 0, s2p = 0, s1i = 0, s2i = 0, n;
fin >> n;
for(int i = 1 ; i <= n ; i ++)
{
fin >> x;
if(x % 2 == 0)
s1p += x;
else
s1i += x;
}
for(int i = 1 ; i <= n ; i ++)
{
fin >> x;
if(x % 2 == 0)
s2p += x;
else
s2i += x;
}
fout << s1p * s2i + s1i * s2p << endl;
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 #2839 ParImpar1
Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #2839 ParImpar1 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!