Code Submission Evaluation System Login

NOI 2019 Open

Start:N/A
End:N/A
 

Tasks | Scoreboard | Statistics


CSES - NOI 2019 Open - Results
History
0:52:15100
Task:Distance Code
Sender:pwild
Submission time:2019-03-09 22:56:29
Language:C++
Status:READY
Score:100

Feedback

groupverdictscore
#1ACCEPTED21
#2ACCEPTED47
#3ACCEPTED32

Test results

testverdicttime (s)group
#1ACCEPTED0.02 / 1.001, 2, 3details
#2ACCEPTED0.01 / 1.001, 2, 3details
#3ACCEPTED0.01 / 1.001, 2, 3details
#4ACCEPTED0.02 / 1.001, 2, 3details
#5ACCEPTED0.03 / 1.001, 2, 3details
#6ACCEPTED0.02 / 1.001, 2, 3details
#7ACCEPTED0.01 / 1.001, 2, 3details
#8ACCEPTED0.03 / 1.001, 2, 3details
#9ACCEPTED0.02 / 1.001, 2, 3details
#10ACCEPTED0.02 / 1.001, 2, 3details
#11ACCEPTED0.02 / 1.001, 2, 3details
#12ACCEPTED0.02 / 1.002, 3details
#13ACCEPTED0.03 / 1.002, 3details
#14ACCEPTED0.03 / 1.002, 3details
#15ACCEPTED0.03 / 1.002, 3details
#16ACCEPTED0.12 / 1.003details
#17ACCEPTED0.13 / 1.003details
#18ACCEPTED0.14 / 1.003details
#19ACCEPTED0.13 / 1.003details
#20ACCEPTED0.01 / 1.001, 2, 3details

Code

#include <bits/stdc++.h>
using namespace std;

typedef long long ll;
typedef vector<ll> vl;
typedef vector<vl> vvl;
typedef pair<ll,ll> pll;
typedef vector<bool> vb;
const ll oo = 0x3f3f3f3f3f3f3f3f;
const double eps = 1e-9;
#define sz(c) ll((c).size())
#define all(c) begin(c), end(c)
#define FOR(i,a,b) for (ll i = (a); i < (b); i++)
#define FORD(i,a,b) for (ll i = (b)-1; i >= (a); i--)
#define mp make_pair
#define mt make_tuple
#define pb push_back
#define eb emplace_back
#define xx first
#define yy second
#define has(c,i) ((c).find(i) != end(c))
#define TR(X) ({ if(1) cerr << "TR: " << (#X) << " = " << (X) << endl; })

void dfs(ll i, ll p, vvl &adj) {
	for (ll j: adj[i]) {
		if (j == p) continue;
		dfs(j,i,adj);
	}
	cout << i+1 << " ";
}

void encoder() {
	ll n; cin >> n;
	vvl adj(n);
	FOR(i,1,n) {
		ll a, b;
		cin >> a >> b;
		a--, b--;
		adj[a].pb(b);
		adj[b].pb(a);
	}
	dfs(0,-1,adj);
	cout << endl;
}

void decoder() {
	ll n; cin >> n;
	vl dist(n-1);
	FOR(i,0,n-1) cin >> dist[i];

	vl p(n,-1);
	FORD(i,0,n-1) {
		ll j = i+1;
		while (dist[i]-- > 1) j = p[j];
		p[i] = j;
		cout << i+1 << " " << j+1 << endl;
	}
}

int main() {
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);
	
	ll mode; cin >> mode;
	if (mode == 1) encoder();
	else decoder();
}

Test details

Test 1

Group: 1, 2, 3

Verdict: ACCEPTED

input
1
2
2 1

view   save

correct output
(empty)

user output
1 2

view   save

Test 2

Group: 1, 2, 3

Verdict: ACCEPTED

input
1
3
3 1
2 1

view   save

correct output
(empty)

user output
2 3
1 3

view   save

Test 3

Group: 1, 2, 3

Verdict: ACCEPTED

input
1
4
3 2
2 1
4 1
view   save

correct output
(empty)

user output
3 4
2 4
1 2

view   save

Test 4

Group: 1, 2, 3

Verdict: ACCEPTED

input
1
4
2 3
3 4
1 3
view   save

correct output
(empty)

user output
3 4
2 3
1 3

view   save

Test 5

Group: 1, 2, 3

Verdict: ACCEPTED

input
1
5
3 5
4 1
1 3
...
view   save

correct output
(empty)

user output
4 5
3 4
2 5
1 2

view   save

Test 6

Group: 1, 2, 3

Verdict: ACCEPTED

input
1
5
3 2
3 4
5 1
...
view   save

correct output
(empty)

user output
4 5
3 4
2 4
1 5

view   save

Test 7

Group: 1, 2, 3

Verdict: ACCEPTED

input
1
5
4 3
1 4
4 2
...
view   save

correct output
(empty)

user output
4 5
3 4
2 4
1 4

view   save

Test 8

Group: 1, 2, 3

Verdict: ACCEPTED

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

correct output
(empty)

user output
9 10
8 9
7 9
6 9
5 9
...
view   save

Test 9

Group: 1, 2, 3

Verdict: ACCEPTED

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

correct output
(empty)

user output
9 10
8 9
7 8
6 10
5 6
...
view   save

Test 10

Group: 1, 2, 3

Verdict: ACCEPTED

input
1
10
10 4
9 1
4 7
...
view   save

correct output
(empty)

user output
9 10
8 9
7 8
6 7
5 6
...
view   save

Test 11

Group: 1, 2, 3

Verdict: ACCEPTED

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

correct output
(empty)

user output
9 10
8 9
7 9
6 7
5 10
...
view   save

Test 12

Group: 2, 3

Verdict: ACCEPTED

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

correct output
(empty)

user output
499 500
498 499
497 499
496 499
495 499
...
view   save

Test 13

Group: 2, 3

Verdict: ACCEPTED

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

correct output
(empty)

user output
499 500
498 499
497 498
496 497
495 496
...
view   save

Test 14

Group: 2, 3

Verdict: ACCEPTED

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

correct output
(empty)

user output
499 500
498 499
497 498
496 497
495 496
...
view   save

Test 15

Group: 2, 3

Verdict: ACCEPTED

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

correct output
(empty)

user output
499 500
498 499
497 498
496 497
495 496
...
view   save

Test 16

Group: 3

Verdict: ACCEPTED

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

correct output
(empty)

user output
99999 100000
99998 99999
99997 99999
99996 99999
99995 99999
...
view   save

Test 17

Group: 3

Verdict: ACCEPTED

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

correct output
(empty)

user output
99999 100000
99998 99999
99997 99998
99996 99997
99995 99996
...
view   save

Test 18

Group: 3

Verdict: ACCEPTED

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

correct output
(empty)

user output
99999 100000
99998 99999
99997 99998
99996 99997
99995 99996
...
view   save

Test 19

Group: 3

Verdict: ACCEPTED

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

correct output
(empty)

user output
99999 100000
99998 99999
99997 99998
99996 99997
99995 99996
...
view   save

Test 20

Group: 1, 2, 3

Verdict: ACCEPTED

input
1
6
2 1
3 2
4 2
...
view   save

correct output
(empty)

user output
5 6
4 5
3 5
2 3
1 3
view   save