Cod sursa(job #2438608)

Utilizator TeddyDinutaDinuta Eduard Stefan TeddyDinuta Data 12 iulie 2019 21:56:23
Problema Oite Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <bits/stdc++.h>

using namespace std;
ifstream in("oite.in");
ofstream out("oite.out");
const int mod=9973;
int c,a[1025],l,k,ans,s;
vector<pair<int,int>> v[10000];
void add(int n)
{
    int r=n%mod;
    int sz=v[r].size();
    for(int i=0;i<sz;i++)
        if(n==v[r][i].first)
    {
        v[r][i].second++;
        return;
    }
    v[r].push_back({n,1});
}
int find(int n)
{
    int r=n%mod;
    int sz=v[r].size();
    for(int i=0;i<sz;i++)
        if(n==v[r][i].first) return v[r][i].second;
    return 0;
}
int main()
{
   in>>c>>l;
   for(int i=1;i<=c;i++) in>>a[i];
   for(int i=2;i<=c;i++)
   {
       for(int j=i+1;j<=c;j++)
         if(a[i]+a[j]<=l) ans+=find(l-a[i]-a[j]);
       for(int j=i-1;j>0;j--)
        add(a[i]+a[j]);
   }
   out<<ans;
}