Submission details
Task:Hacker
Sender:infosec
Submission time:2015-09-16 18:44:49 +0300
Language:C++
Status:COMPILE ERROR

Compiler report

input/code.cpp: In function 'void read(std::istream&)':
input/code.cpp:49:30: error: 'memset' was not declared in this scope
  memset(mark, 0, sizeof(mark));
                              ^

Code

#include <stdio.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 << i << endl;
		}
	}
	cout << count << " " << res;
}

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

    // fin.close();
	return 0;
}