339
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;
}
Comentarii