Cod sursa(job #964635)

Utilizator Al3ks1002Alex Cociorva Al3ks1002 Data 21 iunie 2013 19:47:36
Problema Oite Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <algorithm>
#include <fstream>
#include <tr1/unordered_map>

using namespace std;
using namespace tr1;

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

const int nmax= 1024;

int v[nmax+1];
unordered_map <int, int> h;

int main(){
    int n, s;
    fin>>n>>s;
    for (int i= 1; i<=n; ++i){
        fin>>v[i];
    }
    sort(v+1, v+n+1);
    for (int i= 3; i<n; ++i){
        for (int j= i+1; j<=n; ++j){
            ++h[v[i]+v[j]];
        }
    }

    int sol= 0;
    for (int i= 2; i+2<=n; ++i){
        for (int j= 1; j<i; ++j){
            sol+= h[s-v[i]-v[j]];
        }
        for (int j= i+2; j<=n; ++j){
            --h[v[i+1]+v[j]];
        }
    }
    fout<<sol<<"\n";

    return 0;
}