Cod sursa(job #1531414)

Utilizator avaspAva Spataru avasp Data 21 noiembrie 2015 13:46:41
Problema Oite Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
#include<cstdio>
#include<set>
using namespace std;
int MOD,v[1025],n,l,s,si;
long long posib;
multiset<int>sum[666014];
int main(){
    freopen("oite.in","r",stdin);
    freopen("oite.out","w",stdout);
    scanf("%d%d",&n,&l);
    MOD=666013;
    for(int i=1;i<=n;i++)
        scanf("%d",&v[i]);
    posib=0;
    for(int i=1;i<=n-1;i++){
        for(int j=i+1;j<=n;j++){
            si=l-v[i]-v[j];
            s=si%MOD;
            if(s>=0)
                posib+=sum[s].count(si);
        }
        for(int j=1;j<i;j++){//perechea v[i], v[j]
            s=(v[i]+v[j])%MOD;
            sum[s].insert(v[i]+v[j]);
        }
    }
    printf("%lld",posib);
    return 0;
}