Cod sursa(job #3330336)

Utilizator vladinfo_Grecu Vlad vladinfo_ Data 18 decembrie 2025 19:08:41
Problema Oite Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.57 kb
#include <bits/stdc++.h>
/// Template Dutzu
#define fast ios_base::sync_with_stdio(false);cin.tie(0);
using namespace std;

ifstream fin("teste.in");
ofstream fout("teste.out");
int v[1030];
long long comb(int n, int k)
{
    long long dem=1;
    long long imp=1;
    for (int i=2;i<=n;i++)
        dem*=i;
    for (int i=2;i<=k;i++)
        imp*=i;
    for (int i=2;i<=n-k;i++)
        imp*=i;
    return dem/imp;
}
int main()
{
    fast
    int n,l;
    fin>>n>>l;
    for (int i=1;i<=n;i++)
        fin>>v[i];
    sort(v+1,v+1+n);
    long long rez=0;
    for (int i=1;i<=n;i++)
        for (int j=i+1;j<=n;j++)
    {
        int aux=l-v[i]-v[j];
        int st=j+1,dr=n;
        while (st<dr)
        {
            if (v[st]+v[dr]==aux)
            {
                int r=1,le=1;
                if (v[st]==v[dr])
                    {
                        long long m=dr-st+1;
                        rez+=m*(m-1)/2;
                        break;
                    }
                else{
                while (st<dr and v[st]==v[st+1])
                {
                    st++;
                    le++;
                }
                while (dr>st and v[dr]==v[dr-1])
                {
                    dr--;
                    r++;
                }
                rez+=le*r;
                st++;
                dr--;
                }
            }
            else
            if (v[st]+v[dr]<aux)
                st++;
            else
                dr--;
        }
    }
    fout<<rez;
    return 0;
}