Pagini recente » Cod sursa (job #1544860) | Cod sursa (job #2134048) | Cod sursa (job #1417871) | Cod sursa (job #732541) | Cod sursa (job #1144728)
#include<fstream>
#include<vector>
using namespace std;
ifstream fin( "oite.in" );
ofstream fout( "oite.out" );
const int nmax = 1024;
const int mod = 666013;
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, x, y;
long long sol;
fin>>n>>s;
for( int i = 0; i < n; ++ i ) {
fin>>a[i];
for( int j = 0; j < i; ++ j ) {
key = a[i] + a[j];
key %= mod;
h[ key ].push_back( ret_str( j, i ) );
}
}
sol = 0;
for( int i = 0; i < n; ++ i ) {
for( int j = i + 1; j < n; ++ j ) {
key = s - a[i] - a[j];
key %= mod;
for( int l = 0; l < (int)h[ key ].size(); ++ l ) {
x = h[ key ][l].x;
y = h[ key ][l].y;
if ( a[x] + a[y] + a[i] + a[j] == s && x > j ) {
++ sol;
}
}
}
}
fout<<sol<<'\n';
fin.close();
fout.close();
return 0;
}