Cod sursa(job #1562187)

Utilizator retrogradLucian Bicsi retrograd Data 4 ianuarie 2016 21:22:19
Problema Loto Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <cstdio>
#include <algorithm>
#include <iostream>

using namespace std;

int X[1000001], V[101], nodes;

int main() {
    int n, s;

    freopen("loto.in", "r", stdin);
    freopen("loto.out", "w", stdout);

    cin >> n >> s;
    for(int i=1; i<=n; i++)
        cin >> V[i];

    for(int i=1; i<=n; i++)
    for(int j=1; j<=n; j++)
    for(int k=1; k<=n; k++) {
        X[++nodes] = V[i] + V[j] + V[k];
    }

    long long sol = 0;

    sort(X + 1, X + nodes + 1);
    n = n * n * n;

    int j = n, k = n;
    for(int i = 1; i <= n; i += 1) {
        while(X[i] + X[j] >= s) j--;
        while(X[i] + X[k] > s) k--;

        sol += k - j;
    }

    cout << sol;

    return 0;
}