CSES - NOI 2019 - Results
Submission details
Task:Distance Code
Sender:Árni
Submission time:2019-03-06 14:19:33 +0200
Language:C++
Status:READY
Result:0
Feedback
groupverdictscore
#10
#20
#30
Test results
testverdicttimegroup
#10.02 s1, 2, 3details
#20.02 s1, 2, 3details
#30.02 s1, 2, 3details
#40.01 s1, 2, 3details
#50.03 s1, 2, 3details
#60.02 s1, 2, 3details
#70.02 s1, 2, 3details
#80.02 s1, 2, 3details
#90.01 s1, 2, 3details
#100.02 s1, 2, 3details
#110.02 s1, 2, 3details
#120.01 s2, 3details
#13--2, 3details
#14--2, 3details
#15--2, 3details
#16--3details
#17--3details
#18--3details
#19--3details
#200.01 s1, 2, 3details

Compiler report

input/code.cpp: In function 'int main()':
input/code.cpp:42:24: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
      for (int l = 0; l < pris[1].size(); l++) {
                      ~~^~~~~~~~~~~~~~~~
input/code.cpp:49:24: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
      for (int l = 0; l < pris[0].size(); l++) {
                      ~~^~~~~~~~~~~~~~~~

Code

#include <iostream>
#include<vector>
#include <string>
#include <math.h>

using namespace std;

int main() {
	int a, b, c;
	cin >> a >> b >> c;
	vector<int> thief(a+1);
	for (int i = 1; i < a+1; i++) {
		thief[i] = i;
	}
	vector<string> move1(c);
	vector<int> move2(c);
	for(int i = 0; i < c; i++) {
		cin >> move1[i] >> move2[i];
	}
	for (int i = 0; i < pow(2, c); i++) {
		for (int i = 1; i < a + 1; i++) {
			thief[i] = i;
		}
		vector<vector<int>> pris(2, vector<int>(10,0));
		int p = 0;
		int q = 0;
		for (int j = 0; j < c; j++) {
			if (move1[j] == "C" && thief[move2[j]] != 0 ) {
				if ((i >> j) & 1) {
					pris[1][p] = move2[j];
					p++;
					thief[move2[j]] = 0;
				}
				else {
					pris[0][q] = move2[j];
					q++;
					thief[move2[j]] = 0;
				}
			}
			else if(move1[j] == "O" && thief[move2[j]] !=0){
				if ((i >> j) && 1 && pris[1][0] != 0) {
					for (int l = 0; l < pris[1].size(); l++) {
						thief[pris[1][l]] = pris[1][l];
						pris[1][l] = 0;
					}
					p = 0;
				}
				else if (pris[0][0] != 0) {
					for (int l = 0; l < pris[0].size(); l++) {
						thief[pris[0][l]] = pris[0][l];
						pris[0][l] = 0;
					}
					q = 0;
				}
				else {
					break;
				}
			}
			else {
				break;
			}
			if (j == c-1) {
				for (int h = 0; h < c; h++) {
					if ((i >> h) && 1) {
						cout << 2 << " ";
					}
					else {
						cout << 1 << " ";						}
				}
				return 0;
			}
		}
	}
	cout << "IMPOSSIBLE";
	return 0;
}

Test details

Test 1

Group: 1, 2, 3

Verdict:

input
1
2
2 1

correct output
(empty)

user output
IMPOSSIBLE

Test 2

Group: 1, 2, 3

Verdict:

input
1
3
3 1
2 1

correct output
(empty)

user output
IMPOSSIBLE

Test 3

Group: 1, 2, 3

Verdict:

input
1
4
3 2
2 1
4 1

correct output
(empty)

user output
IMPOSSIBLE

Test 4

Group: 1, 2, 3

Verdict:

input
1
4
2 3
3 4
1 3

correct output
(empty)

user output
IMPOSSIBLE

Test 5

Group: 1, 2, 3

Verdict:

input
1
5
3 5
4 1
1 3
...

correct output
(empty)

user output
IMPOSSIBLE

Test 6

Group: 1, 2, 3

Verdict:

input
1
5
3 2
3 4
5 1
...

correct output
(empty)

user output
IMPOSSIBLE

Test 7

Group: 1, 2, 3

Verdict:

input
1
5
4 3
1 4
4 2
...

correct output
(empty)

user output
IMPOSSIBLE

Test 8

Group: 1, 2, 3

Verdict:

input
1
10
9 3
8 9
2 9
...

correct output
(empty)

user output
IMPOSSIBLE

Test 9

Group: 1, 2, 3

Verdict:

input
1
10
9 2
5 8
7 1
...

correct output
(empty)

user output
IMPOSSIBLE

Test 10

Group: 1, 2, 3

Verdict:

input
1
10
10 4
9 1
4 7
...

correct output
(empty)

user output
IMPOSSIBLE

Test 11

Group: 1, 2, 3

Verdict:

input
1
10
2 6
4 3
3 5
...

correct output
(empty)

user output
IMPOSSIBLE

Test 12

Group: 2, 3

Verdict:

input
1
500
10 6
6 255
6 428
...

correct output
(empty)

user output
IMPOSSIBLE

Test 13

Group: 2, 3

Verdict:

input
1
500
152 466
451 313
158 479
...

correct output
(empty)

user output
(empty)

Test 14

Group: 2, 3

Verdict:

input
1
500
109 440
330 190
443 161
...

correct output
(empty)

user output
(empty)

Test 15

Group: 2, 3

Verdict:

input
1
500
144 373
257 233
341 318
...

correct output
(empty)

user output
(empty)

Test 16

Group: 3

Verdict:

input
1
100000
54983 75172
93807 75172
44082 75172
...

correct output
(empty)

user output
(empty)

Test 17

Group: 3

Verdict:

input
1
100000
88863 19059
86423 76688
98536 95984
...

correct output
(empty)

user output
(empty)

Test 18

Group: 3

Verdict:

input
1
100000
59979 6389
19097 24999
27846 82330
...

correct output
(empty)

user output
(empty)

Test 19

Group: 3

Verdict:

input
1
100000
58761 66001
25102 51081
98625 67861
...

correct output
(empty)

user output
(empty)

Test 20

Group: 1, 2, 3

Verdict:

input
1
6
2 1
3 2
4 2
...

correct output
(empty)

user output
IMPOSSIBLE