Pagini recente » Cod sursa (job #1927191) | Cod sursa (job #1026854) | Cod sursa (job #2879630) | Cod sursa (job #342400) | Cod sursa (job #3188176)
#include <fstream>
#include <algorithm>
#include <unordered_map>
using namespace std;
ifstream cin ("oite.in");
ofstream cout ("oite.out");
unordered_map <int , int> aparitii;
int main ()
{
int lungime , suma;
cin >> lungime >> suma;
int termen[1024];
for (int indice = 0 ; indice < lungime ; indice++)
{ cin >> termen[indice]; }
sort(termen , termen + lungime);
long long modalitati = 0;
for (int indice_1 = 2 ; indice_1 < lungime - 1 ; indice_1++) {
for (int indice_2 = 0 ; indice_2 < indice_1 - 1 ; indice_2++)
{ aparitii[termen[indice_2] + termen[indice_1 - 1]]++; }
for (int indice_2 = indice_1 + 1 ; indice_2 < lungime && termen[0] + termen[1] + termen[indice_1] + termen[indice_2] <= suma ; indice_2++)
{ modalitati += aparitii[suma - termen[indice_1] - termen[indice_2]]; }
}
cout << modalitati;
cout.close(); cin.close();
return 0;
}