QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#776837#7781. Sheep Eat Wolvesucup-team1412WA 1ms3704kbC++234.3kb2024-11-23 21:09:542024-11-23 21:09:56

Judging History

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

  • [2024-11-23 21:09:56]
  • 评测
  • 测评结果:WA
  • 用时:1ms
  • 内存:3704kb
  • [2024-11-23 21:09:54]
  • 提交

answer

#include <iostream>
using namespace std;
typedef long long ll;
#define endl '\n'
signed main() {
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    ll x, y, p, q;
    cin >> x >> y >> p >> q;
    ll ls = x, lw = y, rw = 0, rs = 0, ow = 0, os = 0;
    ll loc = 0;
    bool ok1 = true;
    ll cnt1 = 0;
    while (rs < x) {
        ll onship = 0;
        if (cnt1 > 5000) {
            break;
        }
        if (loc == 0) {
            if (ls <= p) {
                cnt1++;
                break;
            }
            while (lw > ls + q) {
                lw--;
                onship++;
                ow++;
                if (onship > p) {
                    ok1 = false;
                    break;
                }
            }
            if (!ok1) break;
            while (ls + q > lw && onship < p) {
                ls--;
                os++;
                onship++;
            }
            while (onship < p) {
                lw--;
                onship++;
                ow++;
                if (onship < p) {
                    ls--;
                    onship++;
                    os++;
                }
            }
            rw += ow;
            rs += os;
            ow = 0;
            os = 0;
            onship = 0;
            cnt1++;
            loc = 1;
        }
        else {
            while (rw > rs + q && rs != 0) {
                ow++;
                rw--;
                onship++;
                if (onship > p) {
                    ok1 = false;
                    break;
                }
            }
            if (!ok1) break;
            lw += ow;
            ow = 0;
            onship = 0;
            cnt1++;
            loc = 0;
        }
    }
    ls = x, lw = y, rw = 0, rs = 0, ow = 0, os = 0;
    loc = 0;
    bool ok2 = true;
    ll cnt2 = 0;
    if (ls > p) {
        while (1) {
            if (rw + p > p + q)
                break;
            rw += p;
            lw -= p;
            cnt2 += 2;
        }
        ls -= p, rs += p;
        cnt2 += 2;
        if (lw > ls + q) ok2 = false;
        else {
            while (rs < x) {
                ll onship = 0;
                if (cnt2 > 5000) {
                    break;
                }
                if (loc == 0) {
                    if (ls <= p) {
                        cnt2++;
                        break;
                    }
                    while (lw > ls + q) {
                        lw--;
                        onship++;
                        ow++;
                        if (onship > p) {
                            ok2 = false;
                            break;
                        }
                    }
                    if (!ok2) break;
                    while (ls + q > lw && onship < p) {
                        ls--;
                        os++;
                        onship++;
                    }
                    while (onship < p) {
                        lw--;
                        onship++;
                        ow++;
                        if (onship < p) {
                            ls--;
                            onship++;
                            os++;
                        }
                    }
                    rw += ow;
                    rs += os;
                    ow = 0;
                    os = 0;
                    onship = 0;
                    cnt2++;
                    loc = 2;
                }
                else {
                    while (rw > rs + q && rs != 0) {
                        ow++;
                        rw--;
                        onship++;
                        if (onship > p) {
                            ok2 = false;
                            break;
                        }
                    }
                    if (!ok2) break;
                    lw += ow;
                    ow = 0;
                    onship = 0;
                    cnt2++;
                    loc = 0;
                }
            }


        }
    }
    else cnt2 = 1;

    if (cnt2 > 5000) cout << -1;
    else if (ok1 && ok2) {
        cout << min(cnt1, cnt2);
    }
    else if (ok1) cout << cnt1;
    else if (ok2) cout << cnt2;
    else cout << -1;
    return 0;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 1ms
memory: 3684kb

input:

4 4 3 1

output:

3

result:

ok 1 number(s): "3"

Test #2:

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

input:

3 5 2 0

output:

5

result:

ok 1 number(s): "5"

Test #3:

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

input:

2 5 1 1

output:

-1

result:

ok 1 number(s): "-1"

Test #4:

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

input:

1 1 1 0

output:

1

result:

ok 1 number(s): "1"

Test #5:

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

input:

3 3 1 1

output:

7

result:

ok 1 number(s): "7"

Test #6:

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

input:

3 3 2 1

output:

3

result:

ok 1 number(s): "3"

Test #7:

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

input:

10 9 1 10

output:

19

result:

ok 1 number(s): "19"

Test #8:

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

input:

15 20 2 5

output:

27

result:

ok 1 number(s): "27"

Test #9:

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

input:

18 40 16 7

output:

5

result:

ok 1 number(s): "5"

Test #10:

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

input:

60 60 8 1

output:

27

result:

ok 1 number(s): "27"

Test #11:

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

input:

60 60 8 4

output:

27

result:

ok 1 number(s): "27"

Test #12:

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

input:

60 60 8 8

output:

25

result:

ok 1 number(s): "25"

Test #13:

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

input:

60 60 16 1

output:

13

result:

ok 1 number(s): "13"

Test #14:

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

input:

60 60 16 8

output:

11

result:

ok 1 number(s): "11"

Test #15:

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

input:

60 60 16 16

output:

11

result:

ok 1 number(s): "11"

Test #16:

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

input:

60 60 16 24

output:

9

result:

ok 1 number(s): "9"

Test #17:

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

input:

75 15 1 1

output:

175

result:

ok 1 number(s): "175"

Test #18:

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

input:

50 100 1 0

output:

-1

result:

ok 1 number(s): "-1"

Test #19:

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

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: 3628kb

input:

100 100 10 20

output:

33

result:

ok 1 number(s): "33"

Test #22:

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

input:

100 100 10 30

output:

31

result:

ok 1 number(s): "31"

Test #23:

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

input:

100 100 10 80

output:

21

result:

ok 1 number(s): "21"

Test #24:

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

input:

100 100 1 100

output:

199

result:

ok 1 number(s): "199"

Test #25:

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

input:

100 100 5 0

output:

95

result:

ok 1 number(s): "95"

Test #26:

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

input:

100 100 25 3

output:

13

result:

ok 1 number(s): "13"

Test #27:

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

input:

100 100 30 4

output:

11

result:

ok 1 number(s): "11"

Test #28:

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

input:

95 100 3 3

output:

125

result:

ok 1 number(s): "125"

Test #29:

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

input:

98 99 50 6

output:

5

result:

ok 1 number(s): "5"

Test #30:

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

input:

100 100 45 4

output:

7

result:

ok 1 number(s): "7"

Test #31:

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

input:

100 100 40 39

output:

7

result:

ok 1 number(s): "7"

Test #32:

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

input:

100 100 45 19

output:

7

result:

ok 1 number(s): "7"

Test #33:

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

input:

100 100 49 99

output:

5

result:

ok 1 number(s): "5"

Test #34:

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

input:

100 100 49 100

output:

5

result:

ok 1 number(s): "5"

Test #35:

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

input:

100 100 49 98

output:

5

result:

ok 1 number(s): "5"

Test #36:

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

input:

100 100 49 97

output:

5

result:

ok 1 number(s): "5"

Test #37:

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

input:

100 100 49 96

output:

5

result:

ok 1 number(s): "5"

Test #38:

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

input:

100 100 49 95

output:

5

result:

ok 1 number(s): "5"

Test #39:

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

input:

100 100 100 0

output:

1

result:

ok 1 number(s): "1"

Test #40:

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

input:

1 100 1 0

output:

1

result:

ok 1 number(s): "1"

Test #41:

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

input:

90 100 5 5

output:

87

result:

ok 1 number(s): "87"

Test #42:

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

input:

100 1 1 0

output:

199

result:

ok 1 number(s): "199"

Test #43:

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

input:

94 61 22 35

output:

9

result:

ok 1 number(s): "9"

Test #44:

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

input:

61 92 36 6

output:

9

result:

wrong answer 1st numbers differ - expected: '7', found: '9'