CSES - Datatähti Open 2019 - Results
Submission details
Task:Robot
Sender:DovydasVad
Submission time:2019-01-19 19:44:58 +0200
Language:C++
Status:READY
Result:0
Feedback
groupverdictscore
#10
#20
#30
Test results
testverdicttimegroup
#10.01 s1details
#20.02 s1details
#30.02 s1details
#40.01 s1details
#50.01 s1details
#60.02 s1details
#70.02 s1details
#80.02 s1details
#90.02 s2details
#100.01 s2details
#110.01 s2details
#120.01 s2details
#130.02 s2details
#140.02 s2details
#150.02 s2details
#160.01 s2details
#170.02 s2details
#180.01 s3details
#190.02 s3details
#200.02 s3details
#210.01 s3details
#220.02 s3details
#230.02 s3details
#240.01 s3details
#250.02 s3details
#260.01 s3details
#270.01 s3details
#280.01 s3details
#290.02 s3details
#300.02 s3details
#310.02 s3details
#320.03 s3details
#330.01 s3details
#340.03 s3details
#350.02 s3details
#360.04 s3details
#370.05 s3details
#380.04 s3details
#390.04 s3details

Code

#include <bits/stdc++.h>

using namespace std;

int main()
{
    ios::sync_with_stdio(false);
    int t, n, g1, g2, g3, g4;
    long double X0, Y0, X, Y, l, r, L, R, pi=3.14159265;
    cin >> t;
    for (int i = 0; i < t; i++)
    {
        g1 = 1;
        g2 = 1;
        g3 = 1;
        g4 = 1;
        cin >> n;
        cin >> X0 >> Y0;
        L = -4*pi;
        R = 4*pi;
        for (int y = 1; y < n; y++)
        {
            cin >> X >> Y;
            if (X-X0 == 0)
            {
                if (Y > Y0)
                {
                    g1 = 0;
                    l = 0;
                }
                else
                {
                    g2 = 0;
                    l = -2*pi;
                }
            }
            else if (Y-Y0 == 0)
            {
                if (X > X0)
                {
                    l = -1*pi;
                    g3 = 0;
                }
                else
                {
                    l = pi;
                    g4 = 0;
                }
            }
            else
                l = fabs(atan(fabs(Y-Y0)/fabs(X-X0)));
            if (Y > Y0 && X > X0)
            {
                l -= pi;
            }
            else if (Y < Y0 && X > X0)
            {
                l -= 2*pi;
            }
            else if (Y < Y0 && X < X0)
            {
                l -= 2*pi + (pi - l);
            }
            else if (Y > Y0 && X < X0)
            {
                l -= 3*pi + (pi - l);
            }
            if (l < -4*pi)
            {
                l += 4*pi;
            }
            r = l + 2*pi;
            L = max(L,l);
            R = min(R,r);
            X0 = X;
            Y0 = Y;
        }
        if (g3 == 0 && g4 == 0)
        {
            cout << "NO";
        }
        else if (L < R && (g1 == 1 || g2 == 1))
        {
            cout << "YES";
        }
        else
        {
            cout << "NO";
        }
        cout << "\n";
    }
    return 0;
}

Test details

Test 1

Group: 1

Verdict:

input
2 2

correct output
RG
GR

user output
YES
YES

Test 2

Group: 1

Verdict:

input
2 4

correct output
RRRG
GRRR

user output
YES
YES

Test 3

Group: 1

Verdict:

input
2 6

correct output
RRRRRG
GRRRRR

user output
YES
YES

Test 4

Group: 1

Verdict:

input
2 10

correct output
RRRRRRRRRG
GRRRRRRRRR

user output
YES
YES

Test 5

Group: 1

Verdict:

input
2 50

correct output
RRRRRRRRRRRRRRRRRRRRRRRRRRRRRR...

user output
YES
YES

Test 6

Group: 1

Verdict:

input
2 80

correct output
RRRRRRRRRRRRRRRRRRRRRRRRRRRRRR...

user output
YES
YES

Test 7

Group: 1

Verdict:

input
2 98

correct output
RRRRRRRRRRRRRRRRRRRRRRRRRRRRRR...

user output
YES
YES

Test 8

Group: 1

Verdict:

input
2 100

correct output
RRRRRRRRRRRRRRRRRRRRRRRRRRRRRR...

user output
YES
YES

Test 9

Group: 2

Verdict:

input
2 2

correct output
RG
GR

user output
YES
YES

Test 10

Group: 2

Verdict:

input
2 4

correct output
RRRG
GRRR

user output
YES
YES

Test 11

Group: 2

Verdict:

input
2 6

correct output
RRRRRG
GRRRRR

user output
YES
YES

Test 12

Group: 2

Verdict:

input
4 2

correct output
RG
GG
GG
GR

user output
YES
YES
YES
YES

Test 13

Group: 2

Verdict:

input
4 4

correct output
IMPOSSIBLE

user output
YES
YES
YES
YES

Test 14

Group: 2

Verdict:

input
4 6

correct output
RRRRRG
GBGRGG
GGRBRG
GRRBRR

user output
YES
YES
YES
YES

Test 15

Group: 2

Verdict:

input
6 2

correct output
RG
GG
GG
GG
GG
...

user output
YES
YES
YES
YES
YES
...

Test 16

Group: 2

Verdict:

input
6 4

correct output
RRRG
RGBG
RRGG
BBGG
GRBG
...

user output
YES
YES
YES
YES
YES
...

Test 17

Group: 2

Verdict:

input
6 6

correct output
RRRRRG
GBGRBG
GGGBBG
GGGBBG
GGRBRG
...

user output
YES
YES
YES
YES
YES
...

Test 18

Group: 3

Verdict:

input
2 2

correct output
RG
GR

user output
YES
YES

Test 19

Group: 3

Verdict:

input
2 4

correct output
RRRG
GRRR

user output
YES
YES

Test 20

Group: 3

Verdict:

input
2 6

correct output
RRRRRG
GRRRRR

user output
YES
YES

Test 21

Group: 3

Verdict:

input
4 2

correct output
RG
GG
GG
GR

user output
YES
YES
YES
YES

Test 22

Group: 3

Verdict:

input
4 4

correct output
IMPOSSIBLE

user output
YES
YES
YES
YES

Test 23

Group: 3

Verdict:

input
4 6

correct output
RRRRRG
GBGRGG
GGRBRG
GRRBRR

user output
YES
YES
YES
YES

Test 24

Group: 3

Verdict:

input
6 2

correct output
RG
GG
GG
GG
GG
...

user output
YES
YES
YES
YES
YES
...

Test 25

Group: 3

Verdict:

input
6 4

correct output
RRRG
RGBG
RRGG
BBGG
GRBG
...

user output
YES
YES
YES
YES
YES
...

Test 26

Group: 3

Verdict:

input
6 6

correct output
RRRRRG
GBGRBG
GGGBBG
GGGBBG
GGRBRG
...

user output
YES
YES
YES
YES
YES
...

Test 27

Group: 3

Verdict:

input
2 100

correct output
RRRRRRRRRRRRRRRRRRRRRRRRRRRRRR...

user output
YES
YES

Test 28

Group: 3

Verdict:

input
4 20

correct output
RRRRRRRRRRRRRRRRRRRG
GBBBBBBBBBBBBBBBGRGG
GGRRRRRRRRRRRRRRRBRG
GRRRRRRRRRRRRRRRRBRR

user output
YES
YES
YES
YES

Test 29

Group: 3

Verdict:

input
4 100

correct output
RRRRRRRRRRRRRRRRRRRRRRRRRRRRRR...

user output
YES
YES
YES
YES

Test 30

Group: 3

Verdict:

input
10 10

correct output
RRRRRRRRRG
GBGRBBGRBG
GGGBBGGBBG
GGGBBGGBBG
GGGBBGGBBG
...

user output
YES
YES
YES
YES
YES
...

Test 31

Group: 3

Verdict:

input
12 12

correct output
RRRRRRRRRRRG
RGBBGRBBGRBG
RRBGGBBGGBBG
RRBGGBBGGBBG
RRBGGBBGGBBG
...

user output
YES
YES
YES
YES
YES
...

Test 32

Group: 3

Verdict:

input
10 12

correct output
RRRRRRRRRRRG
RGBBGRBBGRBG
RRBGGBBGGBBG
RRBGGBBGGBBG
RRBGGBBGGBBG
...

user output
YES
YES
YES
YES
YES
...

Test 33

Group: 3

Verdict:

input
12 10

correct output
RRRRRRRRRG
GBGRBBGRBG
GGGBBGGBBG
GGGBBGGBBG
GGGBBGGBBG
...

user output
YES
YES
YES
YES
YES
...

Test 34

Group: 3

Verdict:

input
10 90

correct output
RRRRRRRRRRRRRRRRRRRRRRRRRRRRRR...

user output
YES
YES
YES
YES
YES
...

Test 35

Group: 3

Verdict:

input
90 10

correct output
RRRRRRRRRG
GBGRBBGRBG
GGGBBGGBBG
GGGBBGGBBG
GGGBBGGBBG
...

user output
YES
YES
YES
YES
YES
...

Test 36

Group: 3

Verdict:

input
100 100

correct output
RRRRRRRRRRRRRRRRRRRRRRRRRRRRRR...

user output
YES
YES
YES
YES
YES
...

Test 37

Group: 3

Verdict:

input
98 100

correct output
RRRRRRRRRRRRRRRRRRRRRRRRRRRRRR...

user output
YES
YES
YES
YES
YES
...

Test 38

Group: 3

Verdict:

input
100 98

correct output
RRRRRRRRRRRRRRRRRRRRRRRRRRRRRR...

user output
YES
YES
YES
YES
YES
...

Test 39

Group: 3

Verdict:

input
98 98

correct output
RRRRRRRRRRRRRRRRRRRRRRRRRRRRRR...

user output
YES
YES
YES
YES
YES
...