Submission details
Task:Hacker
Sender:Paul Saikko
Submission time:2015-09-16 17:05:12 +0300
Language:C++
Status:READY
Result:
Test results
testverdicttime
#1ACCEPTED0.06 sdetails
#2ACCEPTED0.05 sdetails
#3ACCEPTED0.05 sdetails
#4ACCEPTED0.06 sdetails
#5ACCEPTED0.05 sdetails
#6ACCEPTED0.05 sdetails
#7ACCEPTED0.06 sdetails
#8ACCEPTED0.05 sdetails
#9ACCEPTED0.05 sdetails
#10ACCEPTED0.05 sdetails
#110.14 sdetails
#120.14 sdetails
#130.14 sdetails
#140.14 sdetails
#150.15 sdetails
#160.14 sdetails
#170.14 sdetails
#180.15 sdetails
#190.14 sdetails
#200.14 sdetails
#210.14 sdetails
#220.15 sdetails
#230.14 sdetails
#240.14 sdetails
#250.14 sdetails
#260.14 sdetails
#270.14 sdetails
#280.14 sdetails
#290.14 sdetails
#300.14 sdetails
#310.14 sdetails
#320.14 sdetails
#330.14 sdetails
#340.14 sdetails
#350.14 sdetails
#360.14 sdetails

Compiler report

input/code.cpp: In function 'int main()':
input/code.cpp:13:24: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d %d", &n, &m);
                        ^
input/code.cpp:19:25: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d %d", &u, &v);
                         ^
input/code.cpp:28:25: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d %d", &w, &d);
                         ^

Code

#include <cstdio>
#include <vector>
#include <unordered_set>
#include <algorithm>
#include <deque>

using namespace std;


int main() {

	int n, m;
	scanf("%d %d", &n, &m);

	vector<unordered_set<int>> g(30000);

	for (int i = 0; i < n-1; ++i) {
		int u, v;
		scanf("%d %d", &u, &v);
		g[u].insert(v);
		g[v].insert(u);
	}

	vector<pair<int,int>> ds;

	for (int i = 0; i < m; ++i) {
		int w, d;
		scanf("%d %d", &w, &d);
		ds.emplace_back(w, d);
	}

	unordered_set<int> p;
	for (int i = 1; i <= n; ++i) 
		p.insert(i);

	for (int i = 0; i < m; ++i) {
		deque<pair<int,int>> q;
		unordered_set<int> v;
		unordered_set<int> p_;

		int d = ds[i].second;
		int w = ds[i].first;

		v.insert(w);
		q.push_back(make_pair(w, 0));

		while(!q.empty()) {
			auto c = q.front();
			q.pop_front();

			if (c.second == d) {
				if (p.count(c.first))
					p_.insert(c.first);
			} else {
				for (auto next : g[c.first]) {
					if (!v.count(next)) {
						v.insert(next);
						q.push_back(make_pair(next, c.second + 1));
					}
				}
			}
		}

		p.swap(p_);
	}

	printf("%lu %d\n", p.size(), *p.begin());

	return 0;
}

Test details

Test 1

Verdict: ACCEPTED

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

correct output
1

user output
1 3

Test 2

Verdict: ACCEPTED

input
2 1
2 1
1 1

correct output
1

user output
1 2

Test 3

Verdict: ACCEPTED

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

correct output
1

user output
1 4

Test 4

Verdict: ACCEPTED

input
8 4
3 8
3 7
3 2
5 8
...

correct output
1

user output
1 4

Test 5

Verdict: ACCEPTED

input
8 2
1 5
2 1
5 4
7 5
...

correct output
1

user output
1 1

Test 6

Verdict: ACCEPTED

input
88 58
16 63
16 55
45 16
16 76
...

correct output
1
16 

user output
1 16

Test 7

Verdict: ACCEPTED

input
90 34
3 30
33 3
3 1
3 16
...

correct output
1
73 

user output
1 73

Test 8

Verdict: ACCEPTED

input
68 64
65 37
26 37
37 2
37 16
...

correct output
1
14 

user output
1 14

Test 9

Verdict: ACCEPTED

input
98 90
82 89
89 72
89 24
89 66
...

correct output
1
38 

user output
1 38

Test 10

Verdict: ACCEPTED

input
45 43
16 24
11 24
24 14
39 16
...

correct output
1
11 

user output
1 11

Test 11

Verdict:

input
200000 10000
108969 124359
95689 6026
116305 139666
24031 23504
...

correct output
2269
100022 100029 100048 100187 10...

user output
(empty)

Test 12

Verdict:

input
200000 30000
149634 101097
7189 8578
110942 104503
110094 199531
...

correct output
12594
100006 100022 100025 100028 10...

user output
(empty)

Test 13

Verdict:

input
200000 10001
9664 10422
101570 162282
21567 87519
75017 10098
...

correct output
4469
100033 100068 100071 100074 10...

user output
(empty)

Test 14

Verdict:

input
200000 30001
192593 161643
133646 146752
70341 87021
85165 3436
...

correct output
646
100376 100431 100629 100865 10...

user output
(empty)

Test 15

Verdict:

input
200000 10003
182120 107802
111504 176786
116392 192800
39491 8466
...

correct output
1
187998 

user output
(empty)

Test 16

Verdict:

input
200000 30003
100234 176124
72445 20075
27078 77532
6054 17091
...

correct output
1013
100101 100226 100318 100331 10...

user output
(empty)

Test 17

Verdict:

input
200000 11000
144259 147062
129144 34375
27688 122452
149687 178943
...

correct output
9
68155 74343 92593 98229 103701...

user output
(empty)

Test 18

Verdict:

input
200000 20000
90535 65281
89691 120083
89310 122019
48389 89987
...

correct output
13
31911 56441 62585 103301 11475...

user output
(empty)

Test 19

Verdict:

input
200000 10010
126094 109522
32134 117141
77008 145100
95190 29985
...

correct output
841
150165 150222 150264 150414 15...

user output
(empty)

Test 20

Verdict:

input
200000 5000
125110 185897
185897 15293
185897 65525
32273 15293
...

correct output
1
120494 

user output
(empty)

Test 21

Verdict:

input
200000 10000
29178 72745
65717 29178
86262 72745
28578 72745
...

correct output
2
70740 146957 

user output
(empty)

Test 22

Verdict:

input
200000 100000
68474 3445
68474 188768
75980 188768
53957 75980
...

correct output
1
130925 

user output
(empty)

Test 23

Verdict:

input
200000 5000
199775 110116
20398 110116
131291 110116
20398 105072
...

correct output
1
142994 

user output
(empty)

Test 24

Verdict:

input
200000 10000
14706 98422
143108 14706
183282 14706
177517 14706
...

correct output
1
24321 

user output
(empty)

Test 25

Verdict:

input
200000 100000
98965 122949
80666 98965
98965 122727
80666 94692
...

correct output
1
89572 

user output
(empty)

Test 26

Verdict:

input
200000 5000
175908 116198
108345 116198
116198 46371
108738 175908
...

correct output
1
104870 

user output
(empty)

Test 27

Verdict:

input
200000 10000
72296 103083
173676 72296
72296 191544
38971 72296
...

correct output
1
1181 

user output
(empty)

Test 28

Verdict:

input
200000 100000
180193 90285
90285 3229
90285 191578
49699 90285
...

correct output
1
94989 

user output
(empty)

Test 29

Verdict:

input
200000 5000
149895 27443
149895 63596
162631 149895
77710 149895
...

correct output
3
9962 69107 158765 

user output
(empty)

Test 30

Verdict:

input
200000 10000
48685 181649
181649 86877
161760 181649
27659 181649
...

correct output
6
33818 96668 107877 151891 1746...

user output
(empty)

Test 31

Verdict:

input
200000 100000
11743 113918
11743 150916
11743 48160
183097 11743
...

correct output
2
3617 191200 

user output
(empty)

Test 32

Verdict:

input
200000 10000
99835 74128
188699 111418
188699 179102
88827 164875
...

correct output
93707
2 5 7 8 14 15 16 19 22 25 28 3...

user output
(empty)

Test 33

Verdict:

input
200000 10000
185678 126111
144054 64404
93775 80874
96138 119649
...

correct output
2789
41 44 92 148 187 303 372 435 5...

user output
(empty)

Test 34

Verdict:

input
200000 10000
96298 24580
141435 60260
62879 70753
62879 53651
...

correct output
93808
3 4 8 9 10 11 12 13 15 17 19 2...

user output
(empty)

Test 35

Verdict:

input
200000 10000
66867 107798
69585 26217
142260 2470
170968 66615
...

correct output
4
34912 58399 72540 82303 

user output
(empty)

Test 36

Verdict:

input
200000 10000
126978 125907
22968 95429
13651 161708
137033 59120
...

correct output
93766
3 7 8 10 13 14 16 18 19 24 25 ...

user output
(empty)