Submission #896021

#TimeUsernameProblemLanguageResultExecution timeMemory
896021vjudge1Ice Hockey World Championship (CEOI15_bobek)C++17
70 / 100
713 ms651192 KiB
#include <bits/stdc++.h> using namespace std; const long long maxn =41; const long long maxs=1e6+20; const long long mod=1e9+7; const long long logn=25; long long n,m; long long x[maxn]; long long dp[maxn][maxs]; long long f(long long idx,long long s) { if(idx==n) { if(s<=m) { return 1; } return 0; } if(dp[idx][s]!=-1) { return dp[idx][s]; } long long rez=0; rez+=f(idx+1,s); if(s+x[idx]<=m) rez+=f(idx+1,s+x[idx]); return dp[idx][s]=rez; } int main() { ios_base::sync_with_stdio(false); cin.tie(0); cin>>n>>m; for(long long i=0;i<n;i++) { cin>>x[i]; } if(n<=22) { long long ans=0; for(long long i=0;i<(1<<n);i++) { long long sum=0; for(long long bit=0;bit<n;bit++) { if(i&(1<<bit)) { sum+=x[bit]; } } if(sum<=m) { ans++; } } cout<<ans<<endl; } else { memset(dp,-1,sizeof dp); cout<<f(0,0)<<endl; } 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...