Cod sursa(job #1820433)

Utilizator lauratalaatlaura talaat lauratalaat Data 1 decembrie 2016 18:42:45
Problema Oite Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.01 kb
#include<stdio.h>
#include<vector>
using namespace std;
#define MOD 666019
int v[1025];
struct bine { int sum ; int o1 ; int o2 ;};
vector<bine>h[MOD+1];
bine p;
void add ( int pi , int pj ){
    int x;
    p.sum=v[pi]+v[pj];
    p.o1=pi;
    p.o2=pj;
    x=p.sum%MOD;
    h[x].push_back(p);
}
int check ( int suma, int pi, int pj){
    int pp,x,i,j;
    x=suma%MOD;
    int cate=0;
    for(i=0;i<h[x].size();i++)
        if(h[x][i].sum==suma)
            if(pj < h[x][i].o1)
                cate++;
    return cate;
}
int main(){
    int n,l,i,j,cate,c,r;
    freopen("oite.in","r",stdin);
    freopen("oite.out","w",stdout);
    scanf("%d%d",&n,&l);
    for(i=1;i<=n;i++)
        scanf("%d",&v[i]);
    for(i=1;i<n;i++)
        for(j=i+1;j<=n;j++)
            add(i,j);
    cate=0;
    for(i=1;i<n;i++)
        for(j=i+1;j<=n;j++){
            c=l-v[i]-v[j];
            r=check(c,i,j);
            if(r!=0)
                cate+=r;
        }
    printf("%d\n",cate);
    return 0;
}