이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
using namespace std;
long long dp[101][100001],arr[301],br = 5e4,n,m;
long long solve(int i,int xd){
if(i==2*m+1){
if(xd==n+br)return 0;
else return -1e18;
}
if(dp[i][xd]!=-1)return dp[i][xd];
long long ans = -1e18;
for(int j = 0;j<=arr[i];j++){
ans = max(ans,solve(i+1,xd+j*(i-m))+j);
}
return dp[i][xd] = ans;
}
signed main(){
cin>>m>>n;
for(int i = 0;i<2*m+1;i++){
cin>>arr[i];
}
memset(dp,-1,sizeof dp);
long long vl = solve(0,5e4);
if(vl<0)cout<<"impossible\n";
else cout<<vl<<endl;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |