Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

谁有测试数据帮我看看是哪里的问题啊?

Posted by Hins at 2009-08-25 18:39:23 on Problem 2021
#include<iostream>
#include<string>
#include<map>

using namespace std;
class value
{
	public:
		string parent;
		int age;
		int visited;
		value(string s,int i)
		{
			visited = 0;
			parent = s;
			age = i;
		}
};
map<string,value*> set;

int Adjust(map<string,value*> m,string name)
{
	value* temp = m[name];
	if(m[name]->parent != "Ted")
	{
		int i = m[name]->age;
		return m[name]->age + Adjust(m,m[name]->parent);
	}
	else
	{
		if(m[name]->visited)
		{
			return 100 - m[name]->age;
		}
		else
		{
			return m[name]->age;
		}
	}
}
int main()
{
	int count = 0;
	int sum = 0;
	string fname;
	string cname;
	int age = 0;
	cin>>count;
	while(count > 0)
	{
		cin>>sum;
		int i = 0;
		map<string, value*>::iterator it;
		for(;i<sum;i++)
		{
			cin>>fname;
			cin>>cname;
			cin>>age;
			value* v = new value(fname,age);
			set[cname] = v;
		}
		for(it = set.begin(); it != set.end(); ++it)
		{
			set[it->first]->age = 100 - Adjust(set,it->first);
			set[it->first]->visited = 1;
		};
		cout<<"DATASET "<<sum<<endl;
		while(sum > 0)
		{
			int compare = -1;
			string output = "";
			for(it = set.begin(); it != set.end(); ++it)
			{
				if(output == "")
				{
					compare = set[it->first]->age;
					output = it->first;
				}
				else if(compare < set[it->first]->age)
				{
					compare = set[it->first]->age;
					output = it->first;
				}
			};
			set.erase(set.find(output));
			cout<<output<<" "<<compare<<endl;
			sum--;
		}
		count--;
	}
	return 0;
}

Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator