Cod sursa(job #1940698)

Utilizator RaduXD1Nicolae Radu RaduXD1 Data 26 martie 2017 19:27:36
Problema Oite Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.22 kb
#include<vector>
#include<fstream>
#define har 967765
using namespace std;
ifstream fin("oite.in");
ofstream fout("oite.out");
vector <pair<int, int> > v[har+10];
int n, i, j, h, ind ,aux,ok,sol,a[1026],c;

int main()
{
    fin>>n>>c;
    for(i=1;i<=n;i++)
        fin>>a[i];
    aux=a[1]+a[2];
    v[aux%har].push_back(make_pair(aux, 1));
    for(i=3;i<n;i++)
    {
        for(j=i+1;j<=n;j++)
        {
            aux=c-a[i]-a[j];
            ind=aux%har;ok=0;
             if(ind<0)
                continue;
            for(h=0;h<v[ind].size();h++)
            {
                if(v[ind][h].first==aux)
                {
                     sol+=v[ind][h].second;
                     break;
                }
            }
        }
        for(j=i-1;j>=1;j--)
        {
            aux=a[i]+a[j];ind=aux%har;ok=1;
            for(h=0;h<v[ind].size();h++)
            {
                if(v[ind][h].first==aux)
                {
                    v[ind][h].second++;ok=0;
                    break;
                }
            }
            if(ok==1)
                v[ind].push_back(make_pair(aux, 1));
        }
    }
    fout<<sol;
    fin.close();
    fout.close();
    return 0;
}