CSES - Siperia opettaa 5.0 - Results
Submission details
Task:Distribution Center
Sender:ankka22
Submission time:2017-03-09 12:13:16 +0200
Language:C++
Status:READY
Result:0
Feedback
groupverdictscore
#10
Test results
testverdicttime
#10.05 sdetails
#20.05 sdetails
#30.05 sdetails
#40.04 sdetails
#50.06 sdetails
#60.06 sdetails
#70.04 sdetails
#80.06 sdetails
#90.07 sdetails
#100.05 sdetails
#110.05 sdetails
#120.05 sdetails
#130.04 sdetails
#140.06 sdetails
#150.06 sdetails
#160.18 sdetails
#170.19 sdetails
#180.17 sdetails
#190.18 sdetails
#200.19 sdetails
#210.20 sdetails
#220.21 sdetails
#230.17 sdetails
#240.20 sdetails
#250.23 sdetails
#260.14 sdetails
#270.17 sdetails
#280.15 sdetails
#290.16 sdetails
#300.16 sdetails
#310.21 sdetails
#320.25 sdetails
#330.22 sdetails
#340.23 sdetails
#350.21 sdetails
#360.15 sdetails
#370.05 sdetails
#380.05 sdetails

Compiler report

input/code.cpp: In function 'int h2(int)':
input/code.cpp:22:1: warning: no return statement in function returning non-void [-Wreturn-type]
 }
 ^

Code

#include <iostream>
#include <vector>
using namespace std;
long n, m, o, cc, p, z[202020], oss[202020], et[202020];
vector<long> pohjat, v[202020], puu[202020], rpuu[202020], eipuu[202020];
void h(int s) {
	if (z[s]) return;
	z[s] = 1;
	for (auto u: v[s]) {
		if (!z[u]) {
			h(u);
			rpuu[u].push_back(s);
			puu[s].push_back(u);
		} 
	}
}
int h2(int s) {
	for (auto u: puu[s]) {
		et[u] = et[s] + 1;
		h2(u);
	}
}
long h3(int s) {
	oss[s] = et[s];
	for (auto u: puu[s]) {
		oss[s] = min(h3(u), oss[s]);
	}
	for (auto u: v[s]) {
		if (et[s] - et[u] > 1) {
			oss[s] = min(et[u], oss[s]);
		}
	}
	return oss[s];
}	
int main() {
	cin >> n >> m;
	for (int i = 0; i < m; i++) {
		cin >> o >> p;
		v[o].push_back(p);
		v[p].push_back(o);
	}
	for (int i = 1; i <= n; i++) {
		h(i);
	}
	for (int i = 1; i <= n; i++) {
		if (rpuu[i].size() == 0) h2(i);
	}
	//h2(1);
	
	//cout << "täy" << endl;
	
	for (int i = 1; i <= n; i++) {
		if (rpuu[i].size() == 0) h3(i);
	}
	/*for (int i = 1; i <= n; i++) {
		cout << i << ":" << et[i] << endl;
	}*/
	/*cout << endl;
	for (int i = 1; i <= n; i++) {
		for (auto u: puu[i]) {
			cout << i << " " << u << endl;
		}
	}*/
	/*cout << endl;
	for (int i = 1; i <= n; i++) {
		cout << i << " " << oss[i] << " " << et[i] << endl;
	}
	//cout << "vastaukset:" << endl;*/
	int ii = 0;
	for (int i = 1; i <= n; i++) {
		for (auto u: puu[i]) {
			if (oss[u] > et[i]) ii++;
		}
	}
	cout << ii << endl;
	for (int i = 1; i <= n; i++) {
		for (auto u: v[i]) {
			if (abs(et[u] - et[i]) > 1) cout << u << endl;
		}
	}
}
/*
6 8
1 2
1 3 
2 3
2 4
4 3
3 5
5 6
6 3
*/

Test details

Test 1

Verdict:

input
4 3
1000 1
2000 2
3000 3

correct output
2 3 4 4

user output
3

Test 2

Verdict:

input
4 3
1 1
3 2
2 3

correct output
2 4 4 2

user output
1

Test 3

Verdict:

input
10 9
100 1
200 2
300 3
400 4
...

correct output
2 3 4 5 6 7 8 9 10 10

user output
9

Test 4

Verdict:

input
10 9
100 9
200 8
300 7
400 6
...

correct output
10 10 9 8 7 6 5 4 3 2

user output
9

Test 5

Verdict:

input
10 9
100 1
200 9
300 2
400 8
...

correct output
2 3 4 5 10 10 5 4 3 2

user output
9

Test 6

Verdict:

input
10 9
100 5
200 4
300 6
400 3
...

correct output
6 6 5 4 3 3 4 5 6 6

user output
9

Test 7

Verdict:

input
10 9
100 5
200 5
300 5
400 5
...

correct output
1 1 1 1 2 2 1 1 1 1

user output
9

Test 8

Verdict:

input
10 9
100 3
200 7
300 3
400 7
...

correct output
1 1 2 2 1 1 2 2 1 1

user output
9

Test 9

Verdict:

input
10 1
1 1

correct output
2 2 1 1 1 1 1 1 1 1

user output
0

Test 10

Verdict:

input
10 1
99999 1

correct output
2 2 1 1 1 1 1 1 1 1

user output
1

Test 11

Verdict:

input
10 1
99999 9

correct output
1 1 1 1 1 1 1 1 2 2

user output
1

Test 12

Verdict:

input
10 1
99999 1

correct output
2 2 1 1 1 1 1 1 1 1

user output
1

Test 13

Verdict:

input
100000 1
1 1

correct output
2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 ...

user output
0

Test 14

Verdict:

input
100000 1
1 99999

correct output
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...

user output
1

Test 15

Verdict:

input
3 3
1 1
2 2
3 1

correct output
3 3 3

user output
1

Test 16

Verdict:

input
100000 99999
51613 84082
3120 88303
90089 57457
82323 36322
...

correct output
2 3 3 1 2 2 1 2 2 1 2 3 3 2 2 ...

user output
99113
72489
29925
86344
14841
...

Test 17

Verdict:

input
100000 99999
55166 92759
72522 49885
91041 58065
66993 66182
...

correct output
1 1 2 4 4 4 4 5 5 5 2 1 3 3 3 ...

user output
99386
45017
63349
57909
2378
...

Test 18

Verdict:

input
100000 99999
90524 19551
22558 32618
68813 64252
16920 55138
...

correct output
2 3 3 3 3 2 2 2 3 3 3 5 5 5 1 ...

user output
99629
47292
89828
20668
94763
...

Test 19

Verdict:

input
100000 99999
543 67313
25302 10820
96818 55943
93056 11560
...

correct output
1 1 2 2 2 2 3 3 3 1 3 3 4 4 2 ...

user output
99624
82374
80678
73996
64875
...

Test 20

Verdict:

input
100000 99999
7098 91097
88439 4005
35386 17063
1917 86090
...

correct output
1 3 3 5 5 3 6 6 6 3 4 4 1 3 3 ...

user output
99760
55775
55430
99711
97479
...

Test 21

Verdict:

input
100000 99999
61671 26653
41901 6290
45318 73847
46486 71566
...

correct output
2 2 2 2 2 4 4 2 2 4 4 4 4 5 5 ...

user output
99558
93849
76374
48550
34728
...

Test 22

Verdict:

input
100000 99999
46666 39205
52562 49064
91772 40120
98068 12889
...

correct output
2 2 4 4 3 3 3 2 3 3 2 2 6 6 5 ...

user output
99473
82598
90755
91674
20794
...

Test 23

Verdict:

input
100000 99999
53478 77769
62382 16090
33315 61136
81654 27389
...

correct output
1 1 1 1 4 4 3 4 4 3 3 3 3 4 4 ...

user output
99326
4042
1395
21919
39584
...

Test 24

Verdict:

input
100000 99999
47015 74422
77958 41967
26483 37045
52560 21334
...

correct output
2 2 3 3 3 1 1 1 2 2 2 4 4 4 4 ...

user output
99771
93261
81885
38019
31348
...

Test 25

Verdict:

input
100000 99999
30444 72197
95332 46416
50857 42241
79810 99621
...

correct output
1 1 2 2 2 4 4 4 4 6 6 2 3 3 3 ...

user output
99468
9719
50607
6813
83342
...

Test 26

Verdict:

input
100 99999
15682 14
57251 20
83099 50
57485 33
...

correct output
100 100 100 100 100 100 100 10...

user output
99994
47
9

Test 27

Verdict:

input
100 99999
77171 16
89815 40
18710 40
25372 60
...

correct output
100 100 100 100 100 100 100 10...

user output
99992
58
54
39
8

Test 28

Verdict:

input
100 99999
69498 75
45431 25
35804 53
35830 44
...

correct output
100 100 100 100 100 100 100 10...

user output
99988
4
1
89
49

Test 29

Verdict:

input
100 99999
14287 85
73750 52
14953 80
27802 96
...

correct output
100 100 100 100 100 100 100 10...

user output
99995
26
1

Test 30

Verdict:

input
100 99999
60021 48
2240 89
45435 4
18160 44
...

correct output
100 100 100 100 100 100 100 10...

user output
99988
21
1

Test 31

Verdict:

input
200000 99999
6459 28754
89524 100200
40972 165007
35542 79232
...

correct output
2 3 3 2 2 1 1 2 2 1 1 2 2 2 2 ...

user output
99999

Test 32

Verdict:

input
200000 99999
91854 42500
34291 59129
21533 24543
12870 128293
...

correct output
1 2 2 2 2 2 2 1 1 2 2 2 2 2 2 ...

user output
99998

Test 33

Verdict:

input
200000 99999
88029 49150
1821 18264
32450 150397
87753 44993
...

correct output
3 3 2 1 1 1 1 1 2 2 1 1 2 3 3 ...

user output
99998

Test 34

Verdict:

input
200000 99999
18637 75106
91405 193095
10716 115503
78702 119750
...

correct output
1 2 2 1 1 1 1 2 2 1 3 3 2 1 1 ...

user output
99997

Test 35

Verdict:

input
200000 99999
18742 152060
38942 104683
46001 85720
9675 93087
...

correct output
1 1 1 2 3 3 1 1 1 1 1 2 4 4 2 ...

user output
99997

Test 36

Verdict:

input
100000 99999
1 99999
2 99998
3 99997
4 99996
...

correct output
100000 100000 99999 99998 9999...

user output
49999

Test 37

Verdict:

input
4 3
1000 1
2000 2
3000 3

correct output
2 3 4 4

user output
3

Test 38

Verdict:

input
4 3
1 1
3 2
2 3

correct output
2 4 4 2

user output
1