Cod sursa(job #2399703)

Utilizator Raresr14Rosca Rares Raresr14 Data 7 aprilie 2019 21:33:58
Problema Oite Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.99 kb
#include <fstream>
#include <vector>
#define DIM 1000017
using namespace std;
ifstream fin("oite.in");
ofstream fout("oite.out");
int n,L,i,j,s,v[1050],k,sol;
vector<pair<int,int> > H[DIM];
int main(){
    fin>>n>>L;
    for(i=1;i<=n;i++)
        fin>>v[i];
    for(i=1;i<n;i++){
        for(j=i+1;j<=n;j++){
            s=L-v[i]-v[j];
            if(s<0)
                continue;
            for(k=0;k<H[s%DIM].size();k++)
                if(H[s%DIM][k].first==s){
                    sol+=H[s%DIM][k].second;
                    break;
                }
        }
        for(j=1;j<i;j++){
            s=v[i]+v[j];
            if(s>L)
                continue;
            for(k=0;k<H[s%DIM].size();k++)
                if(H[s%DIM][k].first==s){
                    H[s%DIM][k].second++;
                    break;
                }
            if(k==H[s%DIM].size())
                H[s%DIM].push_back(make_pair(s,1));
        }
    }
    fout<<sol;
    return 0;
}