Cod sursa(job #2523912)

Utilizator denmirceaBrasoveanu Mircea denmircea Data 14 ianuarie 2020 21:03:21
Problema Oite Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <bits/stdc++.h>
#define mod 1013
using namespace std;
ifstream fin("oite.in");
ofstream fout("oite.out");
unordered_map < int,int>m[mod+10];
int v[1050],i,j,n,sum,sol;
int main()
{
    fin>>n>>sum;
    for(i=1;i<=n;i++)
        fin>>v[i];
        m[(v[1]+v[2])%mod][v[1]+v[2]]++;
    for(i=3;i<n;i++){
        /// al treilea element cu restul
        for(j=i+1;j<=n;j++){
            int caut=sum-v[i]-v[j];
            if(caut<0)
                continue;
            else {
                    if(m[caut%mod].find(caut)!=m[caut%mod].end())
                        sol+=m[caut%mod][caut];
            }
        }
        for(j=1;j<i;j++){
            m[(v[i]+v[j])%mod][v[i]+v[j]]++;
        }
    }
    fout<<sol;
}