Cod sursa(job #2568412)

Utilizator TudorChirila11Tudor Chirila TudorChirila11 Data 3 martie 2020 22:42:21
Problema Medie Scor 40
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.94 kb
#include <bits/stdc++.h>
#define st first
#define nd second
#define pb push_back
#define NMAX 200005
using namespace std;
typedef long long ll;
map<int,int> fr;
FILE *fin=fopen("medie.in","r");
FILE *fout=fopen("medie.out","w");
int n, m, i, j, x, ans;
void fast()
{
    ios_base::sync_with_stdio(false);
    cin.tie();
}
int main()
{
    fast();
   /// cin>>n;
    fscanf(fin,"%d",&n);
    for(i=1;i<=n;++i)
    {
      //  cin>>x;
        fscanf(fin,"%d",&x);
        fr[x]++;
    }
    for(auto i:fr)
    {
        ans+=i.nd*(i.nd-1)*(i.nd-2)/2;
        for(map<int,int>::iterator it2=fr.begin();it2!=fr.end()&&(*it2).st<i.st;++it2)
        {
            pair<int,int> j=(*it2);
            map<int,int>::iterator it=fr.upper_bound(2*i.st-j.st-1);
            if(it!=fr.end()&&(*it).st==2*i.st-j.st)
                ans+=i.nd*j.nd*(*it).nd;
        }
    }
    fprintf(fout,"%d",ans);
    //cout<<ans;
    return 0;
}