Cod sursa(job #1531585)

Utilizator avaspAva Spataru avasp Data 21 noiembrie 2015 14:04:28
Problema Oite Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include<cstdio>
#include<vector>
using namespace std;
int MOD,v[1025],n,l,s,si;
long long posib;
vector<int>sum[15228];
int main(){
    freopen("oite.in","r",stdin);
    freopen("oite.out","w",stdout);
    scanf("%d%d",&n,&l);
    MOD=15227;
    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)
                for(int q=0;q<sum[s].size();q++)
                    if(sum[s][q]==si)
                        posib++;
        }
        for(int j=1;j<i;j++){//perechea v[i], v[j]
            s=(v[i]+v[j])%MOD;
            sum[s].push_back(v[i]+v[j]);
        }
    }
    printf("%lld",posib);
    return 0;
}