CSES - Datatähti 2019 loppu - Results
Submission details
Task:Robotti
Sender:Roope Salmi
Submission time:2019-01-17 16:14:16 +0200
Language:C++
Status:READY
Result:0
Feedback
groupverdictscore
#10
#20
#30
Test results
testverdicttimegroup
#10.01 s1details
#20.03 s1details
#30.01 s1details
#40.01 s1details
#50.02 s1details
#60.01 s1details
#70.02 s1details
#80.02 s1details
#90.02 s2details
#100.02 s2details
#110.01 s2details
#120.01 s2details
#130.03 s2details
#140.02 s2details
#150.01 s2details
#160.02 s2details
#170.02 s2details
#180.01 s3details
#190.02 s3details
#200.01 s3details
#210.01 s3details
#220.02 s3details
#230.02 s3details
#240.02 s3details
#250.02 s3details
#260.01 s3details
#270.01 s3details
#280.01 s3details
#290.01 s3details
#300.02 s3details
#310.01 s3details
#320.02 s3details
#330.02 s3details
#340.02 s3details
#350.02 s3details
#360.02 s3details
#370.02 s3details
#380.01 s3details
#390.02 s3details

Compiler report

input/code.cpp: In function 'int main()':
input/code.cpp:3:11: warning: narrowing conversion of 't[i].std::pair<int, int>::first' from 'int' to 'long double' inside { } [-Wnarrowing]
 #define F first
           ^
input/code.cpp:18:20: note: in expansion of macro 'F'
       c[i] = {t[i].F, t[i].S};
                    ^
input/code.cpp:4:11: warning: narrowing conversion of 't[i].std::pair<int, int>::second' from 'int' to 'long double' inside { } [-Wnarrowing]
 #define S second
           ^
input/code.cpp:18:28: note: in expansion of macro 'S'
       c[i] = {t[i].F, t[i].S};
                            ^

Code

#include <bits/stdc++.h>
using namespace std;
#define F first
#define S second
const long M = 1e9+7;
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
int t;
cin >> t;
for (int ti = 0; ti < t; ++ti) {
int n;
cin >> n;
pair<int, int> t[n];
complex<long double> c[n];
for (int i = 0; i < n; ++i) {
cin >> t[i].F >> t[i].S;
c[i] = {t[i].F, t[i].S};
}
if (n == 2) {
cout << "YES" << "\n";
continue;
}
double lo, hi;
lo = arg(c[2]-c[1]);
hi = arg(c[0]-c[1]);
if (arg((c[2]-c[1])/(c[0]-c[1])) < 0) swap(lo, hi);
if (lo < 0) { lo += M_PI; }
if (hi < 0) { hi += M_PI; }
bool f = 1;
for (int i = 2; i < n-1; ++i) {
double clo, chi;
clo = arg(c[i+1]-c[i]);
chi = arg(c[i-1]-c[i]);
if (arg((c[i+1]-c[i])/(c[i-1]-c[i])) < 0) swap(clo, chi);
if (clo < 0) { clo += M_PI; }
if (chi < 0) { chi += M_PI; }
if (lo < hi) {
if (clo < chi) {
lo = min(lo, clo);
hi = max(hi, chi);
} else {
if (lo <= chi && chi <= hi && lo <= clo && clo <= hi) {
f = 0; break;
}
if (clo > hi) {
lo = clo;
} else {
hi = chi;
}
}
} else {
if (clo < chi) {
if (clo <= hi && chi >= lo) {
f = 0; break;
}
if ((clo >= lo && chi >= lo) || (clo <= hi && chi <= hi)) {
continue;
}
if (clo < hi) {
hi = chi;
} else {
lo = clo;
}
} else {
if ((clo >= lo && chi >= lo) || (clo <= hi && chi <= hi)) {
f = 0; break;
}
lo = min(lo, clo);
hi = max(hi, chi);
}
}
}
if (f) {
cout << "YES\n";
} else {
cout << "NO\n";
}
}
}

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
NO
NO

Test 3

Group: 1

Verdict:

input
2 6

correct output
RRRRRG
GRRRRR

user output
NO
NO

Test 4

Group: 1

Verdict:

input
2 10

correct output
RRRRRRRRRG
GRRRRRRRRR

user output
NO
NO

Test 5

Group: 1

Verdict:

input
2 50

correct output
RRRRRRRRRRRRRRRRRRRRRRRRRRRRRR...

user output
NO
NO

Test 6

Group: 1

Verdict:

input
2 80

correct output
RRRRRRRRRRRRRRRRRRRRRRRRRRRRRR...

user output
NO
NO

Test 7

Group: 1

Verdict:

input
2 98

correct output
RRRRRRRRRRRRRRRRRRRRRRRRRRRRRR...

user output
NO
NO

Test 8

Group: 1

Verdict:

input
2 100

correct output
RRRRRRRRRRRRRRRRRRRRRRRRRRRRRR...

user output
NO
NO

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
NO
NO

Test 11

Group: 2

Verdict:

input
2 6

correct output
RRRRRG
GRRRRR

user output
NO
NO

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
NO
NO
NO
NO

Test 14

Group: 2

Verdict:

input
4 6

correct output
RRRRRG
GBGRGG
GGRBRG
GRRBRR

user output
NO
NO
NO
NO

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
NO
NO
NO
NO
NO
...

Test 17

Group: 2

Verdict:

input
6 6

correct output
RRRRRG
GBGRBG
GGGBBG
GGGBBG
GGRBRG
...

user output
NO
NO
NO
NO
NO
...

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
NO
NO

Test 20

Group: 3

Verdict:

input
2 6

correct output
RRRRRG
GRRRRR

user output
NO
NO

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
NO
NO
NO
NO

Test 23

Group: 3

Verdict:

input
4 6

correct output
RRRRRG
GBGRGG
GGRBRG
GRRBRR

user output
NO
NO
NO
NO

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
NO
NO
NO
NO
NO
...

Test 26

Group: 3

Verdict:

input
6 6

correct output
RRRRRG
GBGRBG
GGGBBG
GGGBBG
GGRBRG
...

user output
NO
NO
NO
NO
NO
...

Test 27

Group: 3

Verdict:

input
2 100

correct output
RRRRRRRRRRRRRRRRRRRRRRRRRRRRRR...

user output
NO
NO

Test 28

Group: 3

Verdict:

input
4 20

correct output
RRRRRRRRRRRRRRRRRRRG
GBBBBBBBBBBBBBBBGRGG
GGRRRRRRRRRRRRRRRBRG
GRRRRRRRRRRRRRRRRBRR

user output
NO
NO
NO
NO

Test 29

Group: 3

Verdict:

input
4 100

correct output
RRRRRRRRRRRRRRRRRRRRRRRRRRRRRR...

user output
NO
NO
NO
NO

Test 30

Group: 3

Verdict:

input
10 10

correct output
RRRRRRRRRG
GBGRBBGRBG
GGGBBGGBBG
GGGBBGGBBG
GGGBBGGBBG
...

user output
NO
NO
NO
NO
NO
...

Test 31

Group: 3

Verdict:

input
12 12

correct output
RRRRRRRRRRRG
RGBBGRBBGRBG
RRBGGBBGGBBG
RRBGGBBGGBBG
RRBGGBBGGBBG
...

user output
NO
NO
NO
NO
NO
...

Test 32

Group: 3

Verdict:

input
10 12

correct output
RRRRRRRRRRRG
RGBBGRBBGRBG
RRBGGBBGGBBG
RRBGGBBGGBBG
RRBGGBBGGBBG
...

user output
NO
NO
NO
NO
NO
...

Test 33

Group: 3

Verdict:

input
12 10

correct output
RRRRRRRRRG
GBGRBBGRBG
GGGBBGGBBG
GGGBBGGBBG
GGGBBGGBBG
...

user output
NO
NO
NO
NO
NO
...

Test 34

Group: 3

Verdict:

input
10 90

correct output
RRRRRRRRRRRRRRRRRRRRRRRRRRRRRR...

user output
NO
NO
NO
NO
NO
...

Test 35

Group: 3

Verdict:

input
90 10

correct output
RRRRRRRRRG
GBGRBBGRBG
GGGBBGGBBG
GGGBBGGBBG
GGGBBGGBBG
...

user output
NO
NO
NO
NO
NO
...
Truncated

Test 36

Group: 3

Verdict:

input
100 100

correct output
RRRRRRRRRRRRRRRRRRRRRRRRRRRRRR...

user output
NO
NO
NO
NO
NO
...
Truncated

Test 37

Group: 3

Verdict:

input
98 100

correct output
RRRRRRRRRRRRRRRRRRRRRRRRRRRRRR...

user output
NO
NO
NO
NO
NO
...
Truncated

Test 38

Group: 3

Verdict:

input
100 98

correct output
RRRRRRRRRRRRRRRRRRRRRRRRRRRRRR...

user output
NO
NO
NO
NO
NO
...
Truncated

Test 39

Group: 3

Verdict:

input
98 98

correct output
RRRRRRRRRRRRRRRRRRRRRRRRRRRRRR...

user output
NO
NO
NO
NO
NO
...
Truncated