记录编号 64987 评测结果 AAAAAW
题目名称 [暑假培训2012] 黑叔 最终得分 83
用户昵称 Gravatar超级傲娇的AC酱 是否通过 未通过
代码语言 C++ 运行时间 0.028 s
提交时间 2013-07-25 11:46:34 内存使用 0.43 MiB
显示代码纯文本
#include<fstream>
#include<cstdlib>
using namespace std;
ifstream fi("hey.in");
ofstream fo("hey.out");
int cmp(const void *a,const void *b);
int compare(string,string);
struct T
{
	string name;
	int tim,cost;
}student[10000];
int main()
{
	int i,n,s;
	fi>>n;
	for(i=0;i<n;i++)
		fi>>student[i].tim>>student[i].name>>student[i].cost;
	fi.close();
	qsort(student,n,sizeof(student[0]),cmp);
	s=0;
	for(i=0;i<n;i++)
	{
		fo<<student[i].name;
		if(student[i].tim>=s)
		{
			s=student[i].tim;
			fo<<" went out at time "<<s<<endl;
		}
		else
			fo<<" went out at time "<<s<<endl;
		s=s+student[i].cost;
	}
	fo.close();
	return 0;
}
int cmp(const void *a,const void *b)
{
	struct T *c=(struct T*)a,*d=(struct T*)b;
	if(c->tim>=d->tim)return 1;
	else
	{
		if(c->tim==d->tim&&compare(c->name,d->name)==2)
			return 1;
		return -1;
	}
}
int compare(string x,string y)
{
	int sg,i;
	if(x.length()<=y.length())
		sg=x.length();
	else
		sg=y.length();
	for(i=0;i<sg;i++)
	{
		if(x[i]-y[i]>0)
			return 2;
		if(x[i]-y[i]<0)
			return 1;
	}
	return 1;
}