QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#755232#7781. Sheep Eat WolvesbexiaoheWA 0ms3716kbC++142.5kb2024-11-16 16:47:592024-11-16 16:48:00

Judging History

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

  • [2024-11-16 16:48:00]
  • 评测
  • 测评结果:WA
  • 用时:0ms
  • 内存:3716kb
  • [2024-11-16 16:47:59]
  • 提交

answer

#include<bits/stdc++.h>
#define endl '\n'

using namespace std;

const int N = 2e5 + 5;
int n, m, k, x, y, T = 1, p, q;
int f_la, f_lb, f_ra, f_rb;
#define zy if(l_a<=0){break;}

void solve()
{
	cin >> x >> y >> p >> q;
	int l_a = x, l_b = y, r_a = 0, r_b = 0;
	
	int ans = 0;
	bool judge = 1;
	
	if(l_a>p&&l_a-l_b+q==0){
		int s_4=p;
		int s_z=p/2*2;
		if(s_4>s_z){
			ans+=4;
			l_a-=s_4;
			r_a+=s_4;
			l_b-=s_4;
			r_b+=s_4;
		}
	}
	
	f_la = l_a, f_lb = l_b, f_ra = r_a, f_rb = r_b;
	
	while (l_a > 0) {
		if (l_a <= p && judge == 1) {
			++ans;
			cout << ans << endl;
			return;
		}
		++ans;
		if (judge == 1) {
			
			int tt = l_a - l_b + q;
			if (tt == 0) {
				int tmp = p;
				/*if (tmp < 2) {
				  cout << "-1" << endl;
				  return;
				  }*/
				int kk = tmp / 2;
				kk = min({ kk,l_a,l_b });
				tmp -= kk * 2;
				l_a -= kk, l_b -= kk, r_a += kk, r_b += kk; zy
				if (l_b == 0 && tmp != 0) {
					kk = min(tmp, l_a);
					r_a += kk;
					l_a -= kk;
					zy
				}
				else if (tmp != 0) {
					++r_b;
					--l_b;
					--tmp;
				}
			}
			else if (tt < 0) {
				int tmp = p;
				int kk = min({ tmp,abs(tt) });
				tt += kk;
				tmp -= kk;
				l_b -= kk, r_b += kk;
				if (tt < 0) {
					cout << "-1" << endl;
					return;
				}
				kk = tmp / 2;
				kk = min({ kk,l_a,l_b });
				tmp -= kk * 2;
				l_a -= kk, l_b -= kk, r_a += kk, r_b += kk;
				zy
				if (l_b == 0 && tmp != 0) {
					kk = min(tmp, l_a);
					r_a += kk;
					l_a -= kk;
					zy
				}
			}
			else if (tt > 0) {
				int tmp = p;
				int kk = min({ tmp,tt,l_a });
				l_a -= kk, r_a += kk;
				tmp -= kk;
				tt -= kk; zy
				
				kk = tmp / 2;
				kk = min({ kk,l_a,l_b });
				tmp -= kk * 2;
				l_a -= kk, l_b -= kk, r_a += kk, r_b += kk; zy
				if (l_b == 0 && tmp != 0) {
					kk = min(tmp, l_a);
					r_a += kk;
					l_a -= kk;
					zy
				}
			}
			if (f_la == l_a && f_lb == l_b && f_ra == r_a && f_rb == r_b) {
				cout << "-1" << endl;
				return;
			}
			else {
				f_la = l_a, f_lb = l_b, f_ra = r_a, f_rb = r_b;
			}
		}
		else if (judge == 0) {
			if (r_a != 0) {
				int tt = r_a - r_b + q;
				if (tt < 0) {
					int tmp = p;
					int kk = min({ r_b,tmp,abs(tt) });
					tt += kk, r_b -= kk, l_b += kk;
					if (tt < 0) {
						cout << "-1" << endl;
						return;
					}
				}
			}
		}
		if (judge == 1)judge = 0;
		else judge = 1;
	}
	cout << ans << endl;
}

int main()
{
	ios::sync_with_stdio(false), cin.tie(0);
	
	//cin >> T;
	while (T--) solve();
	
	return 0;
}

详细

Test #1:

score: 100
Accepted
time: 0ms
memory: 3668kb

input:

4 4 3 1

output:

3

result:

ok 1 number(s): "3"

Test #2:

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

input:

3 5 2 0

output:

5

result:

ok 1 number(s): "5"

Test #3:

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

input:

2 5 1 1

output:

-1

result:

ok 1 number(s): "-1"

Test #4:

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

input:

1 1 1 0

output:

1

result:

ok 1 number(s): "1"

Test #5:

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

input:

3 3 1 1

output:

7

result:

ok 1 number(s): "7"

Test #6:

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

input:

3 3 2 1

output:

3

result:

ok 1 number(s): "3"

Test #7:

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

input:

10 9 1 10

output:

19

result:

ok 1 number(s): "19"

Test #8:

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

input:

15 20 2 5

output:

27

result:

ok 1 number(s): "27"

Test #9:

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

input:

18 40 16 7

output:

5

result:

ok 1 number(s): "5"

Test #10:

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

input:

60 60 8 1

output:

27

result:

ok 1 number(s): "27"

Test #11:

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

input:

60 60 8 4

output:

27

result:

ok 1 number(s): "27"

Test #12:

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

input:

60 60 8 8

output:

25

result:

ok 1 number(s): "25"

Test #13:

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

input:

60 60 16 1

output:

13

result:

ok 1 number(s): "13"

Test #14:

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

input:

60 60 16 8

output:

11

result:

ok 1 number(s): "11"

Test #15:

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

input:

60 60 16 16

output:

11

result:

ok 1 number(s): "11"

Test #16:

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

input:

60 60 16 24

output:

9

result:

ok 1 number(s): "9"

Test #17:

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

input:

75 15 1 1

output:

175

result:

ok 1 number(s): "175"

Test #18:

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

input:

50 100 1 0

output:

-1

result:

ok 1 number(s): "-1"

Test #19:

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

input:

100 100 10 10

output:

35

result:

ok 1 number(s): "35"

Test #20:

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

input:

100 100 10 1

output:

37

result:

ok 1 number(s): "37"

Test #21:

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

input:

100 100 10 20

output:

33

result:

ok 1 number(s): "33"

Test #22:

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

input:

100 100 10 30

output:

31

result:

ok 1 number(s): "31"

Test #23:

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

input:

100 100 10 80

output:

21

result:

ok 1 number(s): "21"

Test #24:

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

input:

100 100 1 100

output:

199

result:

ok 1 number(s): "199"

Test #25:

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

input:

100 100 5 0

output:

95

result:

ok 1 number(s): "95"

Test #26:

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

input:

100 100 25 3

output:

13

result:

ok 1 number(s): "13"

Test #27:

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

input:

100 100 30 4

output:

11

result:

ok 1 number(s): "11"

Test #28:

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

input:

95 100 3 3

output:

127

result:

wrong answer 1st numbers differ - expected: '125', found: '127'