Mai intai trebuie sa te autentifici.
Cod sursa(job #887398)
Utilizator | Data | 23 februarie 2013 18:53:52 | |
---|---|---|---|
Problema | Oite | Scor | 70 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.65 kb |
#include <algorithm>
#include <fstream>
#include <map>
using namespace std;
ifstream fin("oite.in");
ofstream fout("oite.out");
const int nmax= 1024;
int v[nmax+1];
map <int, int> h;
int main(){
int n, s;
fin>>n>>s;
for (int i= 1; i<=n; ++i){
fin>>v[i];
}
sort(v+1, v+n+1);
for (int i= 3; i<n; ++i){
for (int j= i+1; j<=n; ++j){
++h[v[i]+v[j]];
}
}
int sol= 0;
for (int i= 2; i+2<=n; ++i){
for (int j= 1; j<i; ++j){
sol+= h[s-v[i]-v[j]];
}
for (int j= i+2; j<=n; ++j){
--h[v[i+1]+v[j]];
}
}
fout<<sol<<"\n";
return 0;
}