QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#641730#7781. Sheep Eat WolvesjingjingyaWA 0ms3684kbC++141.9kb2024-10-14 22:51:282024-10-14 22:51:28

Judging History

你现在查看的是最新测评结果

  • [2024-10-14 22:51:28]
  • 评测
  • 测评结果:WA
  • 用时:0ms
  • 内存:3684kb
  • [2024-10-14 22:51:28]
  • 提交

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++;
        }
        while(ls+bs+q>lw+bw&&bs+bw<=p-1&&rw){
            rw--;
            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: 3496kb

input:

4 4 3 1

output:

3

result:

ok 1 number(s): "3"

Test #2:

score: 0
Accepted
time: 0ms
memory: 3624kb

input:

3 5 2 0

output:

5

result:

ok 1 number(s): "5"

Test #3:

score: 0
Accepted
time: 0ms
memory: 3532kb

input:

2 5 1 1

output:

-1

result:

ok 1 number(s): "-1"

Test #4:

score: 0
Accepted
time: 0ms
memory: 3600kb

input:

1 1 1 0

output:

1

result:

ok 1 number(s): "1"

Test #5:

score: 0
Accepted
time: 0ms
memory: 3664kb

input:

3 3 1 1

output:

7

result:

ok 1 number(s): "7"

Test #6:

score: 0
Accepted
time: 0ms
memory: 3532kb

input:

3 3 2 1

output:

3

result:

ok 1 number(s): "3"

Test #7:

score: 0
Accepted
time: 0ms
memory: 3676kb

input:

10 9 1 10

output:

19

result:

ok 1 number(s): "19"

Test #8:

score: 0
Accepted
time: 0ms
memory: 3608kb

input:

15 20 2 5

output:

27

result:

ok 1 number(s): "27"

Test #9:

score: 0
Accepted
time: 0ms
memory: 3588kb

input:

18 40 16 7

output:

5

result:

ok 1 number(s): "5"

Test #10:

score: 0
Accepted
time: 0ms
memory: 3680kb

input:

60 60 8 1

output:

27

result:

ok 1 number(s): "27"

Test #11:

score: 0
Accepted
time: 0ms
memory: 3596kb

input:

60 60 8 4

output:

27

result:

ok 1 number(s): "27"

Test #12:

score: 0
Accepted
time: 0ms
memory: 3496kb

input:

60 60 8 8

output:

25

result:

ok 1 number(s): "25"

Test #13:

score: 0
Accepted
time: 0ms
memory: 3624kb

input:

60 60 16 1

output:

13

result:

ok 1 number(s): "13"

Test #14:

score: 0
Accepted
time: 0ms
memory: 3684kb

input:

60 60 16 8

output:

11

result:

ok 1 number(s): "11"

Test #15:

score: 0
Accepted
time: 0ms
memory: 3680kb

input:

60 60 16 16

output:

11

result:

ok 1 number(s): "11"

Test #16:

score: 0
Accepted
time: 0ms
memory: 3600kb

input:

60 60 16 24

output:

9

result:

ok 1 number(s): "9"

Test #17:

score: 0
Accepted
time: 0ms
memory: 3492kb

input:

75 15 1 1

output:

175

result:

ok 1 number(s): "175"

Test #18:

score: 0
Accepted
time: 0ms
memory: 3596kb

input:

50 100 1 0

output:

-1

result:

ok 1 number(s): "-1"

Test #19:

score: 0
Accepted
time: 0ms
memory: 3616kb

input:

100 100 10 10

output:

35

result:

ok 1 number(s): "35"

Test #20:

score: 0
Accepted
time: 0ms
memory: 3664kb

input:

100 100 10 1

output:

37

result:

ok 1 number(s): "37"

Test #21:

score: 0
Accepted
time: 0ms
memory: 3680kb

input:

100 100 10 20

output:

33

result:

ok 1 number(s): "33"

Test #22:

score: 0
Accepted
time: 0ms
memory: 3528kb

input:

100 100 10 30

output:

31

result:

ok 1 number(s): "31"

Test #23:

score: 0
Accepted
time: 0ms
memory: 3488kb

input:

100 100 10 80

output:

21

result:

ok 1 number(s): "21"

Test #24:

score: 0
Accepted
time: 0ms
memory: 3604kb

input:

100 100 1 100

output:

199

result:

ok 1 number(s): "199"

Test #25:

score: -100
Wrong Answer
time: 0ms
memory: 3588kb

input:

100 100 5 0

output:

97

result:

wrong answer 1st numbers differ - expected: '95', found: '97'