QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#641713 | #7781. Sheep Eat Wolves | jingjingya | TL | 0ms | 3680kb | C++14 | 1.8kb | 2024-10-14 22:39:48 | 2024-10-14 22:39:49 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
const int N = 1e6 +10;
#define int long long
#define ll int
#define double long double
#define F(i,a,b) for(int i=(a);i<=(b);i++)
#define G(i,a,b) for(int i=(a);i>=(b);i--)
#define ms(a,b) memset(a,b,sizeof(a))
#define si(a) ((int)(a).size())
#define all(a) (a).begin(),(a).end()
#define fi first
#define se second
#define pb push_back
#define fori(x,y) for(int i=x;i<=(int)y;++i)
#define forj(x,y) for(int j=x;j<=(int)y;++j)
const ll MOD = 998244353;
ll qpow(ll a, ll b) {
ll res = 1, base = a;
while (b) {
if (b&1) res = (res*base)%MOD;
base = (base*base)%MOD;
b >>= 1;
}
return res;
}
inline ll read() {
ll sum = 0, ff = 1; char c = getchar();
while(c<'0' || c>'9') { if(c=='-') ff = -1; c = getchar(); }
while(c>='0'&&c<='9') { sum = sum * 10 + c - '0'; c = getchar(); }
return sum * ff;
}
int ls,rs,lw,rw,p,q;
int bs,bw;
signed main() {
cin>>rs>>rw>>p>>q;
if(rw-p-rs>q){
cout<<-1;
return 0;
}
int ans = 0;
/*
int minn = rs/p;
if(rs%p) minn++;
int k = rs%p;
k = min(k,p-k);
*/
if(rw>rs+q){
ans = rs/p+1;
if(rs%p) ans++;
cout<<2*ans -1<<'\n';
return 0;
}
while(rs>p){
ans++;
if(bw){
rw +=bw;
bw = 0;
}
while(bs+bw<p&&rw<rs+q){
rs--;
bs++;
}
while(rw&&rs&&bs+bw<=p-2){
rs--;
rw--;
bs++;
bw++;
}
if(bs){
ls +=bs;
bs=0;
}
while(bw&&lw<ls+q){
bw--;
lw++;
}
}
if(rs){
ans++;
}
cout<<2*ans -1<<'\n';
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 3492kb
input:
4 4 3 1
output:
3
result:
ok 1 number(s): "3"
Test #2:
score: 0
Accepted
time: 0ms
memory: 3620kb
input:
3 5 2 0
output:
5
result:
ok 1 number(s): "5"
Test #3:
score: 0
Accepted
time: 0ms
memory: 3680kb
input:
2 5 1 1
output:
-1
result:
ok 1 number(s): "-1"
Test #4:
score: 0
Accepted
time: 0ms
memory: 3532kb
input:
1 1 1 0
output:
1
result:
ok 1 number(s): "1"
Test #5:
score: -100
Time Limit Exceeded
input:
3 3 1 1