Cod sursa(job #2864332)
Utilizator | Data | 7 martie 2022 19:42:30 | |
---|---|---|---|
Problema | Oite | Scor | 0 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.64 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream r("iepuri.in");
ofstream w("iepuri.out");
unordered_map <int, int> m;
int n, sum, v[1030], ans;
int main()
{
r>>n>>sum;
for(int i=1;i<=n;i++){
r>>v[i];
}
sort(v+1,v+n+1);
for(int i=1;i<n;i++)
{
for(int j=i+1;j<=n;j++)
{
if(v[i]+v[j]>sum){
break;
}
int rest=sum-v[i]-v[j];
if(m.find(rest)!=m.end()){
ans+=m[rest];
}
}
for(int j=1;j<i;j++){
m[v[i]+v[j]]++;
}
}
w<<ans;
return 0;
}