Cod sursa(job #2408625)

Utilizator tifui.alexandruTifui Ioan Alexandru tifui.alexandru Data 18 aprilie 2019 10:36:39
Problema Oite Scor 50
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <bits/stdc++.h>
#define MAXN 1030

using namespace std;

ifstream f("oite.in");
ofstream g("oite.out");

int v[MAXN];
unordered_multimap <int, pair <int,int> > HM;
int N,G,ans;

void read_data(){

    f>>N>>G;
    for(int i=1;i<=N;i++)
        f>>v[i];
}

void solve(){

    for(int j,i=1;i<N;i++)
        for(j=i+1;j<=N;j++)
            HM.emplace(v[i]+v[j],make_pair(i,j));

    unordered_multimap <int, pair <int,int> > :: iterator it;

    for(int j,i=1;i<N;i++)
        for(j=i+1;j<=N;j++){

            auto range=HM.equal_range(G-v[i]-v[j]);
            for(it=range.first;it!=range.second;++it)
                if((it->second.first-i)*(it->second.second-i)*(it->second.first-j)*(it->second.second-j))
                    ++ans;
        }
    g<<ans/6;
}

int main(){

    read_data();
    solve();

    return 0;
}