Pagini recente » Cod sursa (job #739026) | Cod sursa (job #1726559) | Cod sursa (job #670724) | Cod sursa (job #2444110) | Cod sursa (job #529601)
Cod sursa(job #529601)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
const char iname[] = "oite.in";
const char oname[] = "oite.out";
const int nmax = 1028;
const int mod = 366013;
using namespace std;
ifstream fin(iname);
ofstream fout(oname);
long long c, buildsum, i, j, n, sol;
long long oaie[nmax];
vector<pair <int, int> > H[366115];
long long county(long long ceva)
{
long long sol = 0;
for(int k = 0; k < H[ceva % mod].size(); k++)
{
if(i < H[ceva % mod][k].first && H[ceva % mod][k].second < j )
++sol;
}
return sol;
}
int main()
{
fin >> c >> buildsum;
for(i = 1; i <= c; i ++)
fin >> oaie[i];
sort(oaie + 1, oaie + n + 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 ; i ++)
for(j = i + 1; j <= c; j ++)
if(buildsum - oaie[i] - oaie[j] >= 0)
sol = sol + county(buildsum - oaie[i] - oaie[j]);
fout << sol;
return 0;
}