Pagini recente » Cod sursa (job #1102805) | Cod sursa (job #168118) | Cod sursa (job #1322528) | Cod sursa (job #40951) | Cod sursa (job #529837)
Cod sursa(job #529837)
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
const char iname[] = "oite.in";
const char oname[] = "oite.out";
const int nmax = 1050;
const int mod = 366013;
using namespace std;
ifstream fin(iname);
ofstream fout(oname);
int c, buildsum, i, j, k;
int oaie[nmax];
vector<pair <int, int> > H[366115];
long long sol, ceva;
int main()
{
fin >> c >> buildsum;
for(i = 1; i <= c; i ++)
fin >> oaie[i];
sort(oaie + 1, oaie + c + 1);
for(i = 1; i <= c; i ++)
for(j = i + 1; j <= c; j ++)
H[(oaie[i] + oaie[j]) % mod].push_back(make_pair(i, j));
for(i = 1; i < c && buildsum - oaie[i] - oaie[j] >= 0 ; i ++)
for(j = i + 1; j <= c; j ++)
if(buildsum - oaie[i] - oaie[j] >= 0)
{
ceva = (buildsum - oaie[i] - oaie[j]) % mod;
for(k = 0; k < H[ceva].size(); k++)
if(i < H[ceva][k].first && H[ceva][k].first != j && H[ceva][k].second < j )
++sol;
}
fout << sol;
return 0;
}