Cod sursa(job #1144318)

Utilizator felixiPuscasu Felix felixi Data 16 martie 2014 21:50:19
Problema Oite Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.82 kb
#include<fstream>
#include<vector>

using namespace std;

ifstream in("oite.in");
ofstream out("oite.out");

const int NMAX= 1024, MOD= 666013;

int v[ NMAX+1 ];
int n, S, s, sol;

vector <int>  H[ MOD+2 ];

void RASP( int x ) {
    int nod= x % MOD;
    for( int i= 0;  i<(int)H[nod].size();  ++i)
        if( H[nod][i] == x)
            sol++;
}

int main()
{

    in >> n >> S;
    for( int i= 1;  i<=n;  ++i ) {
        in >> v[i];
    }

    for( int i= 1;  i<n;  ++i )  {
        for( int j= i+1;  j<=n;  ++j ) {
            if( S-v[i]-v[j] >= 0 ) {
                RASP( S-v[i]-v[j] );
            }
        }
        for( int j= 1;  j<i;  ++j ) {
            int x= ( v[i]+v[j] ) % MOD;
            H[x].push_back( v[i]+v[j] );
        }
    }
    out << sol << '\n';
    return 0;
}