Submission #1316921

#TimeUsernameProblemLanguageResultExecution timeMemory
1316921boclobanchatIce Hockey World Championship (CEOI15_bobek)C++20
100 / 100
171 ms20964 KiB
#include<bits/stdc++.h>
using namespace std;
const long long INF=2e18;
vector<long long> va,vb;
long long A[67];
void backtrack(int i,int n,long long val,bool ck)
{
	if(i<=n)
	{
		backtrack(i+1,n,val,ck);
		backtrack(i+1,n,min(INF,val+A[i]),ck);
	}
	else if(!ck) va.push_back(val);
	else vb.push_back(val);
}
int main()
{
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	int n;
	long long s;
	cin>>n>>s;
	for(int i=1;i<=n;i++) cin>>A[i];
	backtrack(1,n/2,0,false);
	backtrack(n/2+1,n,0,true);
	sort(va.begin(),va.end());
	sort(vb.begin(),vb.end());
	long long ans=0,r=vb.size()-1;
	for(auto v:va)
	{
		while(r>=0&&v+vb[r]>s) r--;
		ans+=r+1;
	}
	cout<<ans;
}
#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...