Pagini recente » Cod sursa (job #2033113) | Cod sursa (job #3233352) | Cod sursa (job #2473113) | Cod sursa (job #1380586) | Cod sursa (job #979324)
Cod sursa(job #979324)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("oite.in");
ofstream fout("oite.out");
const int N = 1026;
const int mod = 666013;
int C, L, sol, v[N];
vector <int> a[mod+1];
int Find(const int val)
{
const int x = val % mod; int nr = 0;
for(unsigned i=0; i<a[x].size(); i++)
if(a[x][i] == val) nr++;
return nr;
}
void Insert(const int val)
{
const int x = val % mod;
a[x].push_back(val);
}
inline bool OK(const char &x)
{
return (x >= '0' && x <= '9');
}
int main()
{
fin>>C>>L; fin.get(); char s[15000];
fin.getline(s, 15000); int nr, k = 0;
for(int j=0; s[j];)
if(OK(s[j]))
{
nr = 0; k++;
while(OK(s[j])) nr = nr * 10 + s[j] - '0', j++;
v[k] = nr;
}
else j++;
for(int i=2; i<C; i++)
{
for(int j=i+1; j<=C; j++)
if(L-v[i]-v[j] > 0) sol += Find(L-v[i]-v[j]);
for(int j=1; j<i; j++)
Insert(v[i]+v[j]);
}
fout<<sol;
return 0;
}