Pagini recente » Cod sursa (job #2368209) | Cod sursa (job #2749157) | Cod sursa (job #921360) | Cod sursa (job #1406148) | Cod sursa (job #1144421)
#include<fstream>
#include<vector>
using namespace std;
ifstream in("oite.in");
ofstream out("oite.out");
const int NMAX= 1024, MOD= 696961;
int v[ NMAX+1 ];
int n, S, sol;
vector <int> H[ MOD ];
void RASP( int x ) {
int k= x % MOD;
for( vector<int>::iterator it=H[k].begin(); it!=H[k].end(); ++it ) {
if( *it == x )
sol++;
}
}
inline int get_number() {
char c;
int nr= 0;
in.get(c);
while( c>47 && c<58 ) {
nr= nr*10 + c-48;
in.get(c);
}
return nr;
}
int main()
{
in >> n >> S; in.get();
for( int i= 1; i<=n; ++i ) {
v[i]= get_number();
}
for( int i= 1; i<n; ++i ) {
for( int j= i+1; j<=n; ++j ) {
if( S >= v[i]+v[j] ) {
RASP( S-v[i]-v[j] );
}
}
for( int j= i-1; j>0; --j ) {
H[ ( v[i]+v[j] ) % MOD ].push_back( v[i]+v[j] );
}
}
out << sol << '\n';
return 0;
}