比赛 20160229 评测结果 AWWWWWWEEWTEE
题目名称 政党 最终得分 7
用户昵称 KZNS 运行时间 4.008 s
代码语言 C++ 内存使用 3.46 MiB
提交时间 2016-02-29 20:40:52
显示代码纯文本
//KZNS
#include <fstream>
#include <iostream>
#include <vector>
#include <map>
using namespace std;
//
ifstream fin ("cowpol.in");
ofstream fout ("cowpol.out");
//
typedef map<int, int> mapii;
//
int n, k;
vector<int> mp[200002];
int a[200002]={0};
int dt[100002]={0};
//
mapii DFS(int root) {
	mapii p,pp;
	mapii::iterator ii;
	for (int i=0 ;i<mp[root].size(); i++) {
		pp=DFS(mp[root][i]);
		dt[a[mp[root][i]]]=max(dt[a[mp[root][i]]], p[a[mp[root][i]]]+1);
		p[a[mp[root][i]]]=max(p[a[mp[root][i]]], 1);
		for (ii=pp.begin(); ii!=pp.end(); ii++) {
			dt[(*ii).first]=max(dt[(*ii).first], p[(*ii).first]+(*ii).second+1);
			p[(*ii).first]=max(p[(*ii).first], (*ii).second+1);
		}
	}
	return p;
}
//
int main() {
	fin >>n >>k;
	int b;
	for (int i=1; i<=n; i++) {
		fin >>a[i] >>b;
		mp[b].push_back(i);
	}
	mapii pp;
	pp=DFS(mp[0][0]);
	for (mapii::iterator ii=pp.begin(); ii!=pp.end(); ii++) {
		fout <<(*ii).second <<endl;
	}
	return 0;
}
//UBWH