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
#include <bits/stdc++.h> using namespace std; ifstream cin("parimpar1.in"); ofstream cout("parimpar1.out"); int n , x , s1 , s2 , s3 , s4; int main() { cin >> n; for(int i = 1 ; i <= n ; i ++) { cin >> x; if(x % 2 == 0) s1 += x; else s2 += x; } for(int i = 1 ; i <= n ; i ++) { cin >> x; if(x % 2 == 0) s3 += x; else s4 += x; } cout << s1 * s4 + s2 * s3 << endl; }