Cod sursa(job #1837503)

Utilizator Mihai_PredaPreda Mihai Dragos Mihai_Preda Data 29 decembrie 2016 19:47:33
Problema Oite Scor 90
Compilator cpp Status done
Runda iconcurs4 Marime 0.89 kb
#include <iostream>
#include <fstream>
#include <unordered_map>

using namespace std;

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

const int cMax = 1030;

int c, s;
int a[cMax];
int rasp;

unordered_map<int, int> exista;

void citire()
{
    in >> c >> s;
    for(int i = 1; i <= c; ++i)
        in >> a[i];
}

void rezolvare()
{
    int x;
    for(int i = 1; i <= c; ++i)
    {
        for(int j = i + 1; j <= c; ++j)
        {
            x = s - a[i] - a[j];
            if(exista.find(x) != exista.end())
                rasp += exista[x];
        }
        for(int j = 1; j < i; ++j)
        {
            x = a[i] + a[j];
            if(exista.find(x) == exista.end())
                exista[x] = 1;
            else
                exista[x]++;
        }
    }

    out << rasp;
}

int main()
{
    citire();
    rezolvare();
    return 0;
}