Submission #1145518

#TimeUsernameProblemLanguageResultExecution timeMemory
1145518LeonidCukIce Hockey World Championship (CEOI15_bobek)C++20
100 / 100
166 ms21344 KiB
#include <bits/stdc++.h>
using namespace std;
vector<long long int>v,res[2];
void resi(int l,int r,long long int sum,int a)
{
    res[a].push_back(sum);
    if(l==r)return;
    for(int i=l;i<r;i++)
    {
        resi(i+1,r,sum+v[i],a);
    }
}
int main()
{
    long long int n,m,a;
    cin>>n>>m;
    for(int i=0;i<n;i++)
    {
        cin>>a;
        v.push_back(a);
    }
    resi(0,n/2,0,0);
    resi(n/2,n,0,1);
    sort(res[0].begin(),res[0].end());
    sort(res[1].begin(),res[1].end());
    long long int ans=0,l=0,r=res[1].size()-1;
    while(l<res[0].size()&&r>=0)
    {
        if(res[0][l]+res[1][r]<=m)
        {
            ans+=r+1;
            l++;
        }
        else
        {
            r--;
        }
    }
    cout<<ans;
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...