Cod sursa(job #3221964)

Utilizator Chris_BlackBlaga Cristian Chris_Black Data 8 aprilie 2024 18:23:49
Problema Oite Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.92 kb
#include <bits/stdc++.h>
#define FOR(i, a, b) for(int i = a; i <= b; ++i)
#define FORR(i, a, b) for(int i = a; i >= b; --i)
#define vi vector<int>
#define pb push_back
#define vvi vector<vi>
#define pii pair<int, int>
#define ff first
#define ss second
#define all(v) (v).begin(), (v).end()
using namespace std;
const string TASK("oite");
ifstream fin(TASK + ".in");
ofstream fout(TASK + ".out");
#define cin fin
#define cout fout

const int N = 1109, M = 666013;

vvi G(M);
void add(int x){G[x % M].pb(x);}
bool find(int x){return find(all(G[x % M]), x) != G[x % M].end();}


int n, l, a[N];

int main()
{
    cin >> n >> l;
    FOR(i, 1, n)cin >> a[i];

    int ans = 0;
    FOR(i, 1, n)
    {
        FOR(j, i + 1, n)
            if(a[i] + a[j] <= l && find(l - a[i] - a[j]))
                ans ++;

        FOR(j, 1, i - 1)add(a[i] + a[j]);
    }

    cout << ans << '\n';
    return 0;
}