Cod sursa(job #1768419)

Utilizator radu_uniculeu sunt radu radu_unicul Data 30 septembrie 2016 20:50:19
Problema Oite Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include<stdio.h>
#include<vector>
using namespace std;
long long int c,l,sol;
#define MOD 10007
vector<int>ha[MOD];
int main()
{
    freopen("oite.in","r",stdin);
    freopen("oite.out","w",stdout);
    scanf("%lld%lld",&c,&l);
    int lana[c+1];
    int value,val,key,size,it;
    for(int i=1; i<=l; ++i) scanf("%lld",&lana[i]);
    for(int i=1; i<c; ++i)
    {
        for(int j=i+1; j<=c; ++j)
        {
            value=l-lana[i]-lana[j];
            if(value>0)
            {
                key=value%MOD;
                size=ha[key].size();
                for(it=0;it<size;it++) if(ha[key][it]==value) sol++;
            }
        }
        for(int j = 1; j < i; ++j)
        {
            val = lana[i] + lana[j];
            ha[val % MOD].push_back(val);
        }
    }
    printf("%lld",sol);
}