Pagini recente » Cod sursa (job #1142693) | Cod sursa (job #2191589) | Cod sursa (job #1750842) | Cod sursa (job #1204436) | Cod sursa (job #1144760)
#include<fstream>
#include<algorithm>
#include<vector>
using namespace std;
ifstream fin( "oite.in" );
ofstream fout( "oite.out" );
const int nmax = 1030;
const int mod = 1666013;
int a[ nmax ];
struct gr{ int x, y; };
vector <gr> h[ mod ];
inline gr ret_str( int x, int y ) {
gr sol;
sol.x = x; sol.y = y;
return sol;
}
int main()
{
int n, s, key, k, x, y;
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 = 0; j < i; ++ j ) {
key = ( a[i] + a[j] ) % mod;
h[ key ].push_back( ret_str( j, i ) );
key = s - a[i] - a[j];
if ( key >= 0 ) {
k = key%mod;
for( int l = 0; l < (int)h[ k ].size(); ++ l ) {
x = h[ k ][l].x;
y = h[ k ][l].y;
if ( a[x] + a[y]== key && y < j ) {
++ sol;
}
}
}
}
}
fout<<sol<<'\n';
fin.close();
fout.close();
return 0;
}