Pagini recente » Cod sursa (job #22466) | Cod sursa (job #2010955) | Cod sursa (job #1708807) | cel_mai_mare_olimpicar_2019_oni2007_zi1 | Cod sursa (job #1144306)
#include <algorithm>
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("oite.in");
ofstream fout("oite.out");
const int mod= 666013;
const int nmax= 1024;
int n, sum, sol;
int c[nmax+1];
vector <int> v[mod];
void check( int x ) {
for ( vector <int>::iterator it= v[x%mod].begin(); it!=v[x%mod].end(); ++it ) {
if ( *it==x ) {
++sol;
}
}
}
int main( ) {
fin>>n>>sum;
for ( int i= 1; i<=n; ++i ) {
fin>>c[i];
}
sort( c+1, c+n+1 );
for ( int i= 1; i<=n; ++i ) {
for ( int j= i+1; j<=n; ++j ) {
if ( sum>=c[i]+c[j] ) {
check(sum-c[i]-c[j]);
}
}
for ( int j= i-1; j>=1; --j ) {
v[(c[i]+c[j])%mod].push_back(c[i]+c[j]);
}
}
fout<<sol<<"\n";
return 0;
}