Pagini recente » Cod sursa (job #2378923) | Cod sursa (job #2426358) | Cod sursa (job #1158408) | Cod sursa (job #241119) | Cod sursa (job #1223122)
#include <fstream>
#include <vector>
#include <cstring>
#include <algorithm>
#define NMAX 1100
#define MOD 666013
#define pb push_back
using namespace std;
ofstream out("oite.out");
int n , S ;
int v[NMAX];
vector < int > G[MOD];
void add( int x )
{
int k = x % MOD;
G[k].pb(x);
}
int cauta( int x )
{
int k = x % MOD;
vector < int >:: iterator i;
int sol = 0;
if( x < 0 )
return 0;
for( i = G[k].begin() ; i != G[k].end() ; ++i )
if( *i == x )
++sol;
return sol;
}
int main()
{
ifstream in("oite.in");
in >> n >> S;
int i , j;
int sol = 0;
for( i=1 ; i<=n ; i++)
in >> v[i];
sort ( v + 1, v + n + 1 );
for( i = 1 ; i<=n ; i++)
{
for( j = i + 1 ; j<=n ; j++)
{
int rez = S - v[i] - v[j];
sol += cauta(rez);
}
for( j = 1 ; j < i ; j++)
add( v[i] + v[j] );
}
out << sol;
return 0;
}