Cod sursa(job #1223122)

Utilizator lucian666Vasilut Lucian lucian666 Data 25 august 2014 15:22:08
Problema Oite Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.06 kb



#include <fstream>
#include <vector>
#include <cstring>
#include <algorithm>


#define NMAX 1100
#define MOD 666013
#define pb push_back

using namespace std;
ofstream out("oite.out");

int n , S ;
int v[NMAX];

vector < int > G[MOD];


void add( int x )
{

    int k = x % MOD;
    G[k].pb(x);

}

int cauta( int x )
{

    int k = x % MOD;

    vector < int >:: iterator i;

    int sol = 0;

    if( x < 0 )
        return 0;

    for( i = G[k].begin() ; i != G[k].end() ; ++i )
        if( *i == x )
            ++sol;

    return sol;

}

int main()
{

    ifstream in("oite.in");

    in >> n >> S;

    int i , j;
    int sol = 0;

    for(  i=1 ; i<=n ; i++)
        in >> v[i];

    sort ( v + 1, v + n + 1 );

    for( i = 1 ; i<=n ; i++)
    {

        for( j = i + 1 ; j<=n ; j++)
        {

            int rez = S - v[i] - v[j];
            sol += cauta(rez);

        }

        for( j = 1 ; j < i ; j++)
            add( v[i] + v[j] );

    }

    out << sol;


    return 0;

}