Cod sursa(job #1509433)

Utilizator GinguIonutGinguIonut GinguIonut Data 23 octombrie 2015 20:56:38
Problema Oite Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <fstream>
#include <vector>
#define nMax 1100
#define MOD 100001
using namespace std;
ifstream fin("oite.in");
ofstream fout("oite.out");
long long val[nMax], i, j, sum, s, sol, n;
vector<long long> G[MOD];
int find_value(long long val)
{
    int bck=0;
    int list=val%MOD;
    for(vector<long long>::iterator it=G[list].begin();it!=G[list].end();it++)
        if(*it==val)
            bck++;
    return bck;
}
void add_value(long long val)
{
    int list=val%MOD;
    G[list].push_back(val);
}
int main()
{
    fin>>n>>s;
    for(i=1;i<=n;i++)
        fin>>val[i];
    for(i=1;i<=n;i++)
    {
        for(j=i+1;j<=n;j++)
        {
            sum=s-val[i]-val[j];
            sol+=find_value(sum);
        }
        for(j=1;j<i;j++)
            add_value(val[i]+val[j]);
    }
    fout<<sol;
    return 0;
}