记录编号 112870 评测结果 AWWWWWWWWW
题目名称 [USACO Dec08] 奶牛的糖果 最终得分 10
用户昵称 Gravatarnoier 是否通过 未通过
代码语言 C++ 运行时间 1.100 s
提交时间 2014-07-17 13:54:00 内存使用 0.28 MiB
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<vector>
using namespace std;
/////////////////////
class node{
public:
	int num;
	bool flag;
	int can;
	vector<int> next;
	node():can(-1){};
};
////////////////////
vector <node> map;
int n;
///////////////////
void init(){
	cin>>n;
	map.resize(n+1);
	for (int i=1;i<=n;i++){
		int temp;
		cin>>temp;
		map[i].num=i;
		map[i].flag=true;
		map[i].next.push_back(temp);
	}
}
int work(int i,int depth){
	if (!map[i].flag) return depth;
	if (map[i].can!=-1) return depth+map[i].can;
	else {
		int temp=depth;
		map[i].flag=false;
		depth=work(map[i].next.at(0),depth+1);
		map[i].flag=true;
		map[i].can=depth-temp+1;
		return depth;
	}
}
///////////////////
int main(){
	freopen("treat.in","r",stdin);
	freopen("treat.out","w",stdout);
	ios::sync_with_stdio(false);
	init();
	for (int i=1;i<=n;i++){
		int depth=work(i,0);
	    cout<<depth<<endl;
	}
	return 0;
}