Cod sursa(job #964813)

Utilizator romircea2010FMI Trifan Mircea Mihai romircea2010 Data 22 iunie 2013 13:33:17
Problema Oite Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.93 kb
#include <iostream>
#include <fstream>
#include <vector>
#define MOD 13007
using namespace std;

int n, sum, result;
int a[10030];
vector<int>H[103010];

inline void Read()
{
    ifstream f("oite.in");
    f>>n>>sum;
    int i;
    for (i=1; i<=n; i++)
        f>>a[i];
    f.close();
}

inline void Solve()
{
    int i, j, x;
    vector<int>::iterator it, final;
    for (i=1; i<=n; i++)
    {
        for (j=i+1; j<=n; j++)
        {
            x = sum - a[i] - a[j];
            for (it = H[x%MOD].begin(), final = H[x%MOD].end(); it!=final ; it++)
                if (*it == x)
                    result++;
        }
        for (j=1; j<i; j++)
        {
            x = a[i] + a[j];
            H[x%MOD].push_back(x);
        }
    }
}

inline void Write()
{
    ofstream g("oite.out");
    g<<result<<"\n";
    g.close();
}

int main()
{
    Read();
    Solve();
    Write();
    return 0;
}