QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#712607 | #7781. Sheep Eat Wolves | Soestx | TL | 1909ms | 4168kb | C++23 | 1.2kb | 2024-11-05 16:21:37 | 2024-11-05 16:21:37 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define pll pair<int,int>
#define fi first
#define se second
typedef long long LL;
typedef unsigned long long ull;
int n, m, k;
const int N = 1e5 + 10, M = 1e5, mod = 998244353;
int num[N], book[N];
int res, cnt;
int p;
int dp[2][110][110];
void dfs_2(int x,int y,int dis);
void dfs_1(int x,int y,int dis)
{
if(dis>=res) return;
if(dp[1][x][y]<=dis) return;
dp[1][x][y]=dis;
for(int i=min(p,x);i>=0;i--)
{
for(int j=0;j+i<=p&&j<=y;j++)
{
if(i+j==0) continue;
if(x-i&&x-i+k<y-j) continue;
dfs_2(x-i,y-j,dis+1);
}
}
}
void dfs_2(int x,int y,int dis)
{
int xx=n-x,yy=m-y;
if(dis>=res) return;
if(!x)
{
res=dis;
return;
}
if(dp[0][x][y]<=dis) return;
dp[0][x][y]=dis;
for(int i=min(p,xx);i>=0;i--)
{
for(int j=0;j+i<=p&&j<=yy;j++)
{
if(xx-i&&xx-i+k<yy-j) continue;
dfs_1(x+i,y+j,dis+1);
}
}
}
void solve() {
memset(dp,0x3f,sizeof dp);
res=1e18;
cin>>n>>m>>p>>k;
dfs_1(n,m,0);
if(res==1e18) res=-1;
cout<<res<<endl;
}
signed main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
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: 1ms
memory: 3776kb
input:
4 4 3 1
output:
3
result:
ok 1 number(s): "3"
Test #2:
score: 0
Accepted
time: 0ms
memory: 3780kb
input:
3 5 2 0
output:
5
result:
ok 1 number(s): "5"
Test #3:
score: 0
Accepted
time: 0ms
memory: 3856kb
input:
2 5 1 1
output:
-1
result:
ok 1 number(s): "-1"
Test #4:
score: 0
Accepted
time: 0ms
memory: 3900kb
input:
1 1 1 0
output:
1
result:
ok 1 number(s): "1"
Test #5:
score: 0
Accepted
time: 1ms
memory: 3904kb
input:
3 3 1 1
output:
7
result:
ok 1 number(s): "7"
Test #6:
score: 0
Accepted
time: 0ms
memory: 3780kb
input:
3 3 2 1
output:
3
result:
ok 1 number(s): "3"
Test #7:
score: 0
Accepted
time: 0ms
memory: 3772kb
input:
10 9 1 10
output:
19
result:
ok 1 number(s): "19"
Test #8:
score: 0
Accepted
time: 1ms
memory: 3824kb
input:
15 20 2 5
output:
27
result:
ok 1 number(s): "27"
Test #9:
score: 0
Accepted
time: 1ms
memory: 3908kb
input:
18 40 16 7
output:
5
result:
ok 1 number(s): "5"
Test #10:
score: 0
Accepted
time: 5ms
memory: 3768kb
input:
60 60 8 1
output:
27
result:
ok 1 number(s): "27"
Test #11:
score: 0
Accepted
time: 10ms
memory: 3920kb
input:
60 60 8 4
output:
27
result:
ok 1 number(s): "27"
Test #12:
score: 0
Accepted
time: 76ms
memory: 3912kb
input:
60 60 8 8
output:
25
result:
ok 1 number(s): "25"
Test #13:
score: 0
Accepted
time: 16ms
memory: 3812kb
input:
60 60 16 1
output:
13
result:
ok 1 number(s): "13"
Test #14:
score: 0
Accepted
time: 58ms
memory: 3788kb
input:
60 60 16 8
output:
11
result:
ok 1 number(s): "11"
Test #15:
score: 0
Accepted
time: 587ms
memory: 3972kb
input:
60 60 16 16
output:
11
result:
ok 1 number(s): "11"
Test #16:
score: 0
Accepted
time: 941ms
memory: 3940kb
input:
60 60 16 24
output:
9
result:
ok 1 number(s): "9"
Test #17:
score: 0
Accepted
time: 1ms
memory: 3864kb
input:
75 15 1 1
output:
175
result:
ok 1 number(s): "175"
Test #18:
score: 0
Accepted
time: 0ms
memory: 3900kb
input:
50 100 1 0
output:
-1
result:
ok 1 number(s): "-1"
Test #19:
score: 0
Accepted
time: 531ms
memory: 4008kb
input:
100 100 10 10
output:
35
result:
ok 1 number(s): "35"
Test #20:
score: 0
Accepted
time: 17ms
memory: 3780kb
input:
100 100 10 1
output:
37
result:
ok 1 number(s): "37"
Test #21:
score: 0
Accepted
time: 1909ms
memory: 4168kb
input:
100 100 10 20
output:
33
result:
ok 1 number(s): "33"
Test #22:
score: -100
Time Limit Exceeded
input:
100 100 10 30