QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#750651 | #7781. Sheep Eat Wolves | podys | WA | 48ms | 4296kb | C++14 | 2.4kb | 2024-11-15 15:19:49 | 2024-11-15 15:19:53 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define endl "\n"
int x,y,p,q;
// int ans=INT32_MAX;
struct stu{
int a,b,t,cnt;
};
unordered_map<int,int> mp;
int mx=0;
deque<stu> que;
int ha(int a,int b,int c){
return a+b*131+c*17161;
}
// void dfs(int a,int b,int c,int d,int cnt){
// if(a==0){
// ans=min(ans,cnt);
// return;
// }
// if(b-p>a+q){
// return;
// }
// int has=a+b*131+c*17161+d*2248091;
// if(mp[has] && cnt >= mp[has]) return;
// mp[has] = cnt;
// for(int aa=0;aa<=a;aa++){
// if(aa>p) break;
// for(int bb=0;bb<=b;bb++){
// if(aa+bb>p) break;
// if(a-aa && b-bb>a-aa+q) continue;
// if(a-aa==0){
// ans=min(ans,cnt+1);
// continue;
// }
// for(int aaa=0;aaa<=c+aa;aaa++){
// if(aaa>p) break;
// for(int bbb=0;bbb<=d+bb;bbb++){
// if(aaa+bbb>p) break;
// if(c+aa-aaa && d+bb-bbb>c+aa-aaa+q) continue;
// // mx =max(mx,aa-aaa);
// dfs(a-aa+aaa,b-bb+bbb,c+aa-aaa,d+bb-bbb,cnt+2);
// }
// }
// }
// }
// }
void solve(){
cin>>x>>y>>p>>q;
que.push_back({x,y,0,0});
mp[ha(x,y,0)]=1;
int ans=0;
while(!que.empty()){
if(ans) break;
stu now=que.front();
que.pop_front();
int a,b,cnt=now.cnt;
if(now.a==0){
ans=cnt;
break;
}
if(now.t){
a=x-now.a;b=y-now.b;
}else{
a=now.a;b=now.b;
}
if(b-p>a+q) continue;
for(int aa=a;aa>=0;aa--){
if(aa>p) continue;
for(int bb=b;bb>=0;bb--){
if(aa+bb>p) continue;
if(a-aa && b-bb>a-aa+q) continue;
int h=ha(a-aa,b-bb,!now.t);
if(mp[h]) continue;
mp[h]=1;
if(now.t) que.push_back({x-a+aa,y-b+bb,0,cnt+1});
else que.push_back({a-aa,b-bb,1,cnt+1});
}
}
}
if(ans==0) cout<<-1<<endl;
else cout<<ans<<endl;
}
signed main(){
ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
int t=1;
// cin>>t;
while(t--){
solve();
}
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 3624kb
input:
4 4 3 1
output:
3
result:
ok 1 number(s): "3"
Test #2:
score: 0
Accepted
time: 0ms
memory: 3484kb
input:
3 5 2 0
output:
5
result:
ok 1 number(s): "5"
Test #3:
score: 0
Accepted
time: 0ms
memory: 3760kb
input:
2 5 1 1
output:
-1
result:
ok 1 number(s): "-1"
Test #4:
score: 0
Accepted
time: 0ms
memory: 3596kb
input:
1 1 1 0
output:
1
result:
ok 1 number(s): "1"
Test #5:
score: 0
Accepted
time: 0ms
memory: 3624kb
input:
3 3 1 1
output:
7
result:
ok 1 number(s): "7"
Test #6:
score: 0
Accepted
time: 0ms
memory: 3624kb
input:
3 3 2 1
output:
3
result:
ok 1 number(s): "3"
Test #7:
score: 0
Accepted
time: 0ms
memory: 3820kb
input:
10 9 1 10
output:
19
result:
ok 1 number(s): "19"
Test #8:
score: 0
Accepted
time: 0ms
memory: 3636kb
input:
15 20 2 5
output:
27
result:
ok 1 number(s): "27"
Test #9:
score: 0
Accepted
time: 0ms
memory: 3636kb
input:
18 40 16 7
output:
5
result:
ok 1 number(s): "5"
Test #10:
score: 0
Accepted
time: 1ms
memory: 3656kb
input:
60 60 8 1
output:
27
result:
ok 1 number(s): "27"
Test #11:
score: 0
Accepted
time: 1ms
memory: 3912kb
input:
60 60 8 4
output:
27
result:
ok 1 number(s): "27"
Test #12:
score: 0
Accepted
time: 2ms
memory: 3736kb
input:
60 60 8 8
output:
25
result:
ok 1 number(s): "25"
Test #13:
score: 0
Accepted
time: 0ms
memory: 3692kb
input:
60 60 16 1
output:
13
result:
ok 1 number(s): "13"
Test #14:
score: 0
Accepted
time: 3ms
memory: 3964kb
input:
60 60 16 8
output:
11
result:
ok 1 number(s): "11"
Test #15:
score: 0
Accepted
time: 4ms
memory: 3796kb
input:
60 60 16 16
output:
11
result:
ok 1 number(s): "11"
Test #16:
score: 0
Accepted
time: 4ms
memory: 3792kb
input:
60 60 16 24
output:
9
result:
ok 1 number(s): "9"
Test #17:
score: 0
Accepted
time: 1ms
memory: 3684kb
input:
75 15 1 1
output:
175
result:
ok 1 number(s): "175"
Test #18:
score: 0
Accepted
time: 0ms
memory: 3548kb
input:
50 100 1 0
output:
-1
result:
ok 1 number(s): "-1"
Test #19:
score: 0
Accepted
time: 4ms
memory: 3828kb
input:
100 100 10 10
output:
35
result:
ok 1 number(s): "35"
Test #20:
score: 0
Accepted
time: 2ms
memory: 3676kb
input:
100 100 10 1
output:
37
result:
ok 1 number(s): "37"
Test #21:
score: 0
Accepted
time: 6ms
memory: 4132kb
input:
100 100 10 20
output:
33
result:
ok 1 number(s): "33"
Test #22:
score: 0
Accepted
time: 7ms
memory: 3940kb
input:
100 100 10 30
output:
31
result:
ok 1 number(s): "31"
Test #23:
score: 0
Accepted
time: 8ms
memory: 3968kb
input:
100 100 10 80
output:
21
result:
ok 1 number(s): "21"
Test #24:
score: 0
Accepted
time: 2ms
memory: 4156kb
input:
100 100 1 100
output:
199
result:
ok 1 number(s): "199"
Test #25:
score: 0
Accepted
time: 1ms
memory: 3620kb
input:
100 100 5 0
output:
95
result:
ok 1 number(s): "95"
Test #26:
score: 0
Accepted
time: 9ms
memory: 3812kb
input:
100 100 25 3
output:
13
result:
ok 1 number(s): "13"
Test #27:
score: 0
Accepted
time: 9ms
memory: 3856kb
input:
100 100 30 4
output:
11
result:
ok 1 number(s): "11"
Test #28:
score: 0
Accepted
time: 1ms
memory: 3576kb
input:
95 100 3 3
output:
125
result:
ok 1 number(s): "125"
Test #29:
score: 0
Accepted
time: 20ms
memory: 3960kb
input:
98 99 50 6
output:
5
result:
ok 1 number(s): "5"
Test #30:
score: 0
Accepted
time: 21ms
memory: 3856kb
input:
100 100 45 4
output:
7
result:
ok 1 number(s): "7"
Test #31:
score: 0
Accepted
time: 48ms
memory: 3988kb
input:
100 100 40 39
output:
7
result:
ok 1 number(s): "7"
Test #32:
score: 0
Accepted
time: 34ms
memory: 4036kb
input:
100 100 45 19
output:
7
result:
ok 1 number(s): "7"
Test #33:
score: 0
Accepted
time: 43ms
memory: 4296kb
input:
100 100 49 99
output:
5
result:
ok 1 number(s): "5"
Test #34:
score: 0
Accepted
time: 43ms
memory: 4060kb
input:
100 100 49 100
output:
5
result:
ok 1 number(s): "5"
Test #35:
score: 0
Accepted
time: 43ms
memory: 4100kb
input:
100 100 49 98
output:
5
result:
ok 1 number(s): "5"
Test #36:
score: 0
Accepted
time: 44ms
memory: 4048kb
input:
100 100 49 97
output:
5
result:
ok 1 number(s): "5"
Test #37:
score: 0
Accepted
time: 43ms
memory: 4132kb
input:
100 100 49 96
output:
5
result:
ok 1 number(s): "5"
Test #38:
score: 0
Accepted
time: 43ms
memory: 4128kb
input:
100 100 49 95
output:
5
result:
ok 1 number(s): "5"
Test #39:
score: 0
Accepted
time: 1ms
memory: 3764kb
input:
100 100 100 0
output:
1
result:
ok 1 number(s): "1"
Test #40:
score: -100
Wrong Answer
time: 0ms
memory: 3556kb
input:
1 100 1 0
output:
-1
result:
wrong answer 1st numbers differ - expected: '1', found: '-1'