记录编号 |
64987 |
评测结果 |
AAAAAW |
题目名称 |
[暑假培训2012] 黑叔 |
最终得分 |
83 |
用户昵称 |
超级傲娇的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;
}