Submission details
Task:Hacker
Sender:infosec
Submission time:2015-09-16 18:50:33 +0300
Language:C++
Status:READY
Result:
Test results
testverdicttime
#1ACCEPTED0.05 sdetails
#20.06 sdetails
#30.06 sdetails
#4ACCEPTED0.05 sdetails
#5ACCEPTED0.05 sdetails
#6ACCEPTED0.05 sdetails
#7ACCEPTED0.05 sdetails
#8ACCEPTED0.05 sdetails
#9ACCEPTED0.06 sdetails
#10ACCEPTED0.06 sdetails
#11--details
#12--details
#13--details
#14--details
#15--details
#16--details
#17--details
#18--details
#19--details
#20--details
#21--details
#22--details
#23--details
#24--details
#25--details
#26--details
#27--details
#28--details
#29--details
#30--details
#31--details
#32--details
#33--details
#34--details
#35--details
#36--details

Code

#include <stdio.h>
#include <string.h>
#include <iostream>
#include <fstream>
#include <sstream>
#include <algorithm>
#include <queue>
#include <stack>
#include <vector>
#include <map>
#include <math.h> 

#define FILE_INP "hacker.inp"
#define MAXN 200010
#define MAXVAL 1000000001

using namespace std;

int n, m;
vector<int> eList[MAXN];
int d[MAXN];
int mark[MAXN];

void dfs(int i, int hackerDist) {
	if (d[i] == hackerDist) {
		mark[i]++;
		return;
	}

	int len = eList[i].size();
	for (int k = 0; k < len; k++) {
		int j = eList[i][k];
		if (d[j] == -1) {
			d[j] = d[i] + 1;
			dfs(j, hackerDist);
		}
	}
}

void read(istream &fin) 
{	
	int u, v, hackerDist;
	fin >> n >> m;
	for (int i = 0; i < n-1; i++) {
		fin >> u >> v;
		eList[u].push_back(v);
		eList[v].push_back(u);
	}

	memset(mark, 0, sizeof(mark));

	for (int i = 0; i < m; i++) {
		fin >> u >> hackerDist;
		memset(d, -1, sizeof(d));
		d[u] = 0;
		dfs(u, hackerDist);
	}

	int count = 0;
	int res = 0;
	for (int i = 0; i < n; i++) {
		if (mark[i] == m) {
			count ++;
			res = i;
		}
	}
	cout << count << " " << res;
}

int main()
{
	// ifstream fin(FILE_INP);
 //    read(fin);
    read(cin);

    // fin.close();
	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:

input
2 1
2 1
1 1

correct output
1

user output
0 0

Test 3

Verdict:

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

correct output
1

user output
0 0

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)