Cod sursa(job #731100)

Utilizator deneoAdrian Craciun deneo Data 7 aprilie 2012 14:48:36
Problema Oite Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <fstream>
#include <vector>
using namespace std;

#define mod 34567
#define MAXN 1024

int l, sol, n, a[MAXN + 10];
vector<int> h[mod];

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

int main() {
    int i, j, k, tsum, poz;
    fin >> n >> l;
    for (i = 1; i <= n; ++i)
        fin >> a[i];
    for (i = 1; i <= n; ++i) {
        for (j = i + 1; j <= n; ++j) {
            tsum = l - a[i] - a[j];
            if (tsum >= 0) {
                poz = tsum % mod;
                for (k = 0; k < h[poz].size(); ++k)
                    if (h[poz][k] == tsum)
                        ++sol;
            }
        }
        for (j = 1; j < i; ++j) {
            tsum = a[i] + a[j];
            h[tsum % mod].push_back(tsum);
        }
    }
    fout << sol << "\n";
    fout.close();
    return 0;
}