QOJ.ac
QOJ
ID | 提交记录ID | 题目 | Hacker | Owner | 结果 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|
#803 | #547721 | #7781. Sheep Eat Wolves | ship2077 | ship2077 | Success! | 2024-09-05 08:34:13 | 2024-09-05 08:34:13 |
詳細信息
Extra Test:
Wrong Answer
time: 0ms
memory: 3820kb
input:
44 5 36 3
output:
-1
result:
wrong answer 1st numbers differ - expected: '3', found: '-1'
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#547721 | #7781. Sheep Eat Wolves | ship2077 | WA | 10ms | 4000kb | C++23 | 610b | 2024-09-05 08:28:19 | 2024-09-05 08:34:41 |
answer
#include<bits/stdc++.h>
using namespace std;
constexpr int M=105,inf=0x3f3f3f3f;
int n,m,p,q,ans=inf,dp[M][M];
int main(){
scanf("%d%d%d%d",&n,&m,&p,&q);p=min(p,n+m);
memset(dp,0x3f,sizeof(dp));dp[n][m]=0;
for (int i=n;~i;i--)
for (int j=m;~j;j--){
if (n!=i&&j<m+i-n-q) break;
for (int x=max(0,p+i-n);x<=p;x++)
for (int y=i?max(0,j-i-q):0;y<=p&&y<=j;y++)
dp[i][j]=min(dp[i][j],dp[i+p-x][j-y+x]+1);
}
for (int i=0;i<=m;i++) ans=min(ans,dp[0][i]);
printf("%d\n",ans==inf?-1:ans*2-1);
return 0;
}