Pagini recente » Voteaza Gigel | Cod sursa (job #1878530) | Cod sursa (job #207756) | Cod sursa (job #1510920) | Cod sursa (job #1144934)
#include<fstream>
#include<algorithm>
#include<vector>
using namespace std;
ifstream fin( "oite.in" );
ofstream fout( "oite.out" );
const int nmax = 1030;
const int mod = 666013;
int a[ nmax ];
vector <int> h[ mod ];
int main()
{
int n, s, key, x;
long long sol;
fin>>n>>s;
for( int i = 0; i < n; ++ i ) {
fin>>a[i];
}
sort( a, a + n );
sol = 0;
for( int i = 0; i < n; ++ i ) {
for( int j = i+1; j < n; ++ j ) {
key = s - a[i] - a[j];
if ( key >= 0 ) {
x = key%mod;
for( int k = 0; k < (int)h[ x ].size(); ++ k ) {
if ( key == h[ x ][ k ] ) {
++ sol;
}
}
}
}
for( int j = i - 1; j > -1; -- j ) {
x = ( a[i] + a[j] ) % mod;
h[ x ].push_back( a[i] + a[j] );
}
}
fout<<sol<<'\n';
fin.close();
fout.close();
return 0;
}