fbpx

Problema #2839 – ParImpar1 – Rezolvari PBInfo

de Mihai-Alexandru

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

S-ar putea sa iti placa