QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#633765 | #7781. Sheep Eat Wolves | CCF | RE | 0ms | 3852kb | C++14 | 1.0kb | 2024-10-12 16:10:07 | 2024-10-12 16:10:08 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define pii pair<int,int>
#define fs first
#define sc second
#define pb push_back
#define SZ(X) (int)((X).size())
#define lb(i) ((i)&-(i))
#define cl(i) memset(i,0,sizeof(i))
const int N=6.1e3;
int solve(int x,int y,int p,int q,int a,int b){
int side=0,nw=0,cnt=0;
for(;x>0;side^=1){
cnt++;
if(side==0){
if(x<=p-nw)return cnt;
while(nw<p){
while(nw<p&&y-x<q)x--,a++,nw++;
if(nw<p)y--,b++,nw++;
}
if(y-x>q)return 1e9;
nw=0;
}
if(side==1){
//x>0
while(a>0&&nw<p&&b-a>q)b--,y++,nw++;
assert(a==0||b-a<=q);////
nw=0;
}
}
return cnt;
}
int main(){
int x,y,p,q;
cin>>x>>y>>p>>q;
int mn=solve(x,y,p,q,0,0);
for(int i=1;i<=p;i++)mn=min(mn,solve(x,y-i,p,q,0,i)+2);
if(mn>1e9)puts("-1");
else printf("%d\n",mn);
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 3852kb
input:
4 4 3 1
output:
3
result:
ok 1 number(s): "3"
Test #2:
score: -100
Runtime Error
input:
3 5 2 0