Cod sursa(job #2523784)

Utilizator AlexPascu007Pascu Ionut Alexandru AlexPascu007 Data 14 ianuarie 2020 18:56:16
Problema Oite Scor 100
Compilator cpp-32 Status done
Runda Arhiva de probleme Marime 1.02 kb
#include <bits/stdc++.h>
#define mod 100017
using namespace std;
ifstream fin("oite.in");
ofstream fout("oite.out");
int n,i,j,sol,L,s,k,v[1030];
vector< pair<int,int> > h[mod];
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%mod].size();k++) {
                if (h[s%mod][k].first==s) {
                    sol+=h[s%mod][k].second;
                    break;
                }
            }
        }
        for (j=1;j<i;j++) {
            s=v[i]+v[j];
            if (v[i]+v[j]>L)
                continue;
            for (k=0;k<h[s%mod].size();k++) {
                if (h[s%mod][k].first==s) {
                    h[s%mod][k].second++;
                    break;
                }
            }
            if (k==h[s%mod].size())
                h[s%mod].push_back({s,1});
        }
    }
    fout<<sol;
    return 0;
}