Cod sursa(job #1342711)

Utilizator palcuiealexAlex Palcuie palcuiealex Data 14 februarie 2015 14:04:42
Problema Oite Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.02 kb
#include <cstdio>

using namespace std;

const int NMAX = 1000;
int v[NMAX];
int pairs[NMAX*(NMAX+1)/2][3], nPairs;

int main() {
    freopen("oite.in", "r", stdin);
    freopen("oite.out", "w", stdout);

    int n, s;
    scanf("%d%d", &n, &s);

    for(int i=0; i<n; i++)
        scanf("%d", &v[i]);

    for(int i=0; i<n; i++)
        for(int j=i+1; j<n; j++) {
            pairs[nPairs][0] = v[i] + v[j];
            pairs[nPairs][1] = i;
            pairs[nPairs++][2] = j;
        }

    int sol = 0;
    for(int i=0; i<nPairs; i++)
        for(int j=i+1; j<nPairs; j++)
            if (pairs[i][0] + pairs[j][0] == s) {
                bool diferite = true;
                for(int k=1; k<=2; k++)
                    for(int l=1; l<=2; l++)
                        if(pairs[i][k] == pairs[j][l]) {
                            diferite = false;
                            break;
                        }
                if (diferite) {
                    sol ++;
                }
            }

    printf("%d\n", sol/3);
    return 0;
}