CSES - KILO 2015 2/5 - Results
Submission details
Task:Hacker
Sender:infosec
Submission time:2015-09-16 18:43:08 +0300
Language:C++
Status:COMPILE ERROR

Compiler report

input/code.cpp: In function 'void dfs(int, int)':
input/code.cpp:28:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for (int k = 0; k < eList[i].size(); k++) {
                    ^
input/code.cpp: In function 'void read(std::istream&)':
input/code.cpp:47:30: error: 'memset' was not declared in this scope
  memset(mark, 0, sizeof(mark));
                              ^

Code

#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;
}
for (int k = 0; k < eList[i].size(); 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 << i << endl;
}
}
cout << count << " " << res;
}
int main()
{
// ifstream fin(FILE_INP);
// read(fin);
read(cin);
// fin.close();
return 0;
}