CSES - NOI 2019 - Results
Submission details
Task:Distance Code
Sender:Marcus Alexander Karmi September
Submission time:2019-03-06 12:09:34 +0200
Language:C++
Status:READY
Result:0
Feedback
groupverdictscore
#10
#20
#30
Test results
testverdicttimegroup
#10.01 s1, 2, 3details
#20.02 s1, 2, 3details
#30.02 s1, 2, 3details
#40.02 s1, 2, 3details
#50.02 s1, 2, 3details
#60.02 s1, 2, 3details
#70.01 s1, 2, 3details
#80.01 s1, 2, 3details
#90.02 s1, 2, 3details
#100.01 s1, 2, 3details
#110.01 s1, 2, 3details
#120.02 s2, 3details
#130.02 s2, 3details
#140.01 s2, 3details
#150.01 s2, 3details
#160.02 s3details
#170.02 s3details
#180.02 s3details
#190.01 s3details
#200.02 s1, 2, 3details

Compiler report

input/code.cpp: In function 'int main()':
input/code.cpp:87:9: warning: ignoring return value of 'int system(const char*)', declared with attribute warn_unused_result [-Wunused-result]
   system("pause");
   ~~~~~~^~~~~~~~~
input/code.cpp:104:8: warning: ignoring return value of 'int system(const char*)', declared with attribute warn_unused_result [-Wunused-result]
  system("pause");
  ~~~~~~^~~~~~~~~

Code

#define _CRT_SECURE_NO_DEPRECATE
#include <algorithm>
#include <numeric>
#include <iterator>
#include <string>
#include <iostream>
#include <cstdio>
#include <string>
#include <vector>
#include <map>
#include <queue>
using namespace std;
typedef long long		ll;
typedef pair<int, int>	ii;
typedef vector<ii>		vii;
typedef vector<int>		vi;
#define INF 1000000000
#define REP(i, a, b) for (int i = int(a); i < int(b); ++i)

vi ans;

void visit(int p, const vector<vi> & nabo, vector<vector<bool> > & nabo_valid,
	vector<char> & mark) {

	if (mark[p] == 'P')
		return;

	mark[p] = 'T';
	REP(i, 0, nabo[p].size()) {
		//naboen
		int q = nabo[p][i];

		//denne veien settes som ugyldig
		if (mark[q] == 'T')
			nabo_valid[p][i] = false;
		else
			visit(q, nabo, nabo_valid, mark);
	}
	mark[p] = 'P';
	ans.push_back(p);
}


int main() {
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);

	//nodes and edges
	int n, m;
	cin >> n >> m;

	//naboliste
	vector<vi> nabo(n + 1);
	//gyldig å gå denne veien?
	vector<vector<bool> > nabo_valid(n + 1);


	REP(i, 0, m) {
		int p, q;
		cin >> p >> q;
		//anta går begge veier
		nabo[p].push_back(q);
		nabo_valid[p].push_back(true);

		nabo[q].push_back(p);
		nabo_valid[q].push_back(true);
	}

	//antall kandidater for source
	int n_cand = 0;
	vi cand;
	REP(i, 1, n + 1) {
		if (nabo[i].size() == 1) {
			n_cand++;
			cand.push_back(i);
		}
	}

	if (n_cand == 0) {
		cand.push_back(1);
		cand.push_back(n);
	}

	//umulig
	if (n_cand > 2) {
		cout << "IMPOSSIBLE" << endl;
		system("pause");
		return 0;
	}

	REP(i, 0, cand.size()) {
		ans = {};
		vector<vector<bool> > nabo_valid_temp = nabo_valid;
		vector<char> mark(n + 1, 'N');

		visit(cand[i], nabo, nabo_valid_temp, mark);

		for (int z : ans)
			cout << z << " ";
		cout << endl;
		return 0;
	}

	system("pause");
	return 0;
}

Test details

Test 1

Group: 1, 2, 3

Verdict:

input
1
2
2 1

correct output
(empty)

user output
(empty)

Test 2

Group: 1, 2, 3

Verdict:

input
1
3
3 1
2 1

correct output
(empty)

user output
(empty)

Error:
terminate called after throwing an instance of 'std::bad_alloc'
  what():  std::bad_alloc

Test 3

Group: 1, 2, 3

Verdict:

input
1
4
3 2
2 1
4 1

correct output
(empty)

user output
(empty)

Error:
terminate called after throwing an instance of 'std::bad_alloc'
  what():  std::bad_alloc

Test 4

Group: 1, 2, 3

Verdict:

input
1
4
2 3
3 4
1 3

correct output
(empty)

user output
(empty)

Test 5

Group: 1, 2, 3

Verdict:

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

correct output
(empty)

user output
(empty)

Error:
terminate called after throwing an instance of 'std::bad_alloc'
  what():  std::bad_alloc

Test 6

Group: 1, 2, 3

Verdict:

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

correct output
(empty)

user output
(empty)

Error:
terminate called after throwing an instance of 'std::bad_alloc'
  what():  std::bad_alloc

Test 7

Group: 1, 2, 3

Verdict:

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

correct output
(empty)

user output
(empty)

Test 8

Group: 1, 2, 3

Verdict:

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

correct output
(empty)

user output
(empty)

Test 9

Group: 1, 2, 3

Verdict:

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

correct output
(empty)

user output
(empty)

Test 10

Group: 1, 2, 3

Verdict:

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

correct output
(empty)

user output
(empty)

Test 11

Group: 1, 2, 3

Verdict:

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

correct output
(empty)

user output
(empty)

Test 12

Group: 2, 3

Verdict:

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

correct output
(empty)

user output
(empty)

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)

Error:
terminate called after throwing an instance of 'std::bad_alloc'
  what():  std::bad_alloc

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
(empty)