Pagini recente » Cod sursa (job #1571111) | Cod sursa (job #1757600) | Cod sursa (job #2204201)
#include <fstream>
#include <vector>
#define DIM 1030
#define MOD 666013
using namespace std;
ifstream in ("oite.in");
ofstream out("oite.out");
long long n, s, oaie[DIM];
long long mods;
vector<pair<long, long> > Hash[MOD + 10];
int main(int argc, const char * argv[]) {
in>>n>>s;
for(int i = 1; i <= n; ++ i)
in>>oaie[i];
for(int i = 1; i <= n; ++ i){
for(int j = i + 1; j <= n; ++ j){
long long sCurr = s - oaie[i] - oaie[j];
if(sCurr > 0 && Hash[sCurr % MOD].size()){
for(auto it : Hash[sCurr % MOD]){
if(it.first == sCurr)
mods += it.second;
}
}
}
for(int j = 1; j < i; ++ j){
long long sCurr = oaie[i] + oaie[j];
int ok = 0;
if(sCurr > 0 && Hash[sCurr % MOD].size()){
for(auto it : Hash[sCurr % MOD]){
if(it.first == sCurr){
++ it.second;
ok = 1;
}
}
}
if(!ok)
Hash[sCurr % MOD].push_back({sCurr, 1});
}
}
out<<mods;
return 0;
}