Cod sursa(job #1785751)

Utilizator liviu23Liviu Andrei liviu23 Data 21 octombrie 2016 21:23:15
Problema Oite Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <algorithm>
#include <fstream>
#include <vector>
#include <iostream>
#define DIM 1028
#define M 10007
#define ll long long
#define f first
#define s second
using namespace std;

int c,v[DIM];
ll ans,l;
vector<int> h[M];


void countComp(ll sum) {
    if(sum<0)
        return;
    int i=sum%M;
    for(int j=0;j<h[i].size();j++)
        if(h[i][j]==sum)
            ans++;
}

int main()
{
    ios_base::sync_with_stdio(false);
    ifstream fin("oite.in");
    ofstream fout("oite.out");
    fin>>c>>l;
    for(int i=1;i<=c;i++)
        fin>>v[i];
    for(int i=1;i<=c;i++) {
        for(int j=i+1;j<=c;j++)
            countComp(l-(v[i]+v[j]));
        for(int j=1;j<i;j++)
            h[(v[i]+v[j])%M].push_back(v[i]+v[j]);
    }
    fout<<ans;
    return 0;
}