一道ACM题目,纠结了我好久,就是通不过,求大神看看

网址是 cpp.zjut.edu.cn  1628题  AC胜出榜

如题:

 

AC胜出榜
Time Limit:1000MS  Memory Limit:32768K

Description:

浙江工业大学Online Program Space系统中有一个题库。每道题目都有一个AC胜出榜。AC胜出榜是对该题提交代码的AC用户之排名,取前50名。排名先按运行耗时从小到大排;若运行耗时相同,再按使用内存空间从小到大排;若还是相等,则按提交日期和时间的先后顺序排,早提交排在前,晚提交排在后。一个用户若对某题AC了多次,只取最好的一次参加胜出榜排名。显然,各种非AC提交,只能被忽略。请你设计程序来产生这个AC胜出榜。

Input:

先是输入一个整数,表示要编制AC胜出榜的题号。随后是一些提交记录(记录数<20000)。每个提交记录包括: 提交号(整数);用户名(无空格字串);题号(字串);提交状态(无空格字串),描述AC(Accept)或者WA(Wrong Answer)等状态;耗时(整数,表示毫秒);空间耗用(整数,表示KB数);编译器(无空格字串);提交日期(”YYYY-MM-DD”格式字串)和提交时间(”HH-MM-SS”格式字串)。每个数据分量之间都有一个空格隔开。  

Output:

输出AC前50名,作为胜出榜。若AC总数不足50,则全部输出。输出时,每个数据分量之间空一格。输出格式按下列描述: 名次(宽度2);提交号(宽度6);用户名(宽度15);耗时(宽度5);空间耗用(宽度5);编译器(宽度3);提交日期(宽度10”YYYY-MM-DD”格式);提交时间(宽度8”HH-MM-SS”格式)。除了用户名左对齐外,其余都为右对齐。  

Sample Input:

1019
674530 A282828 1328 AC 500 244 VC8 2010-12-19 14:50:08
674528 A201011803 1019 WA 12 464 BCB 2010-12-19 14:49:00
674527 A2010811008 1245 AC 15 164 VC8 2010-12-19 14:48:48
674526 A2024450202 1019 AC 16 164 VC8 2010-12-19 14:48:31
674525 A206811008 1260 AC 31 164 VC8 2010-12-19 14:47:58
674524 A20811803 1019 AC 15 464 BCB 2010-12-19 14:47:44
674523 A206811008 1262 AC 15 164 VC8 2010-12-19 14:47:05
674522 A206811805 1019 AC 15 204 VC8 2010-12-19 14:46:34
674521 A206811008 1019 AC 10 164 VC8 2010-12-19 14:46:21
674520 A206811008 1019 AC 15 164 VC8 2010-12-19 14:45:51
674519 A206811805 1019 CE 0 0 VC8 2010-12-19 14:45:30

Sample Output:

 1 674521 A206811008         10   164 VC8 2010-12-19 14:46:21
 2 674522 A206811805         15   204 VC8 2010-12-19 14:46:34
 3 674524 A20811803          15   464 BCB 2010-12-19 14:47:44
 4 674526 A2024450202        16   164 VC8 2010-12-19 14:48:31

 

 

以下是我的代码:

#include<iostream>
#include<string>
#include<iomanip>
#include<vector>
#include<fstream>
#include<algorithm>
using namespace std;
struct q{
 int bian;string acc;
 int time;int nei;string  vcb;string t1,t2;
};
bool mysort(q q1,q q2){
 if(q1.time!=q2.time)
  return q1.time<q2.time;
 else if(q1.nei!=q2.nei)
  return q1.nei<q2.nei;
 else if(q1.t1!=q2.t1)
  return q1.t1<q2.t1;
 else
  return q1.t2<q2.t2;
}
bool mysort2(q q1,q q2){
 if(q1.acc!=q2.acc)
  return q1.acc<q2.acc;
 else if(q1.time!=q2.time)
  return q1.time<q2.time;
 else if(q1.nei!=q2.nei)
  return q1.nei<q2.nei;
 else if(q1.t1!=q2.t1)
  return q1.t1<q2.t1;
 else
  return q1.t2<q2.t2;
}
int main(){
// ifstream cin("1.txt");
 int timu;cin>>timu;
 int i;
 vector<q> v;
 int ii=0;
 for(;cin>>i&&ii<20001;){
  string acc;int ti;string ac;
  int time;int nei;string  vcb;string t1,t2;
  cin>>acc>>ti>>ac>>time>>nei>>vcb>>t1>>t2;
  if(ti!=timu||ac!="AC"){
   continue;
  }
  q aa;
  aa.bian=i;
  aa.acc=acc;
  aa.time=time;
  aa.nei=nei;
  aa.vcb=vcb;
  aa.t1=t1;aa.t2=t2;
  v.push_back(aa);
  ii++;
 }
 sort(v.begin(),v.end(),mysort2);
// v.erase(unique(v.begin(),v.end()),v.end());
 for(int e=1;e<v.size();e++){
  if(v[e].acc==v[e-1].acc){
   v.erase(v.begin()+e);
   e--;
  }
 }
 sort(v.begin(),v.end(),mysort);
 for(int k=0;k<v.size()&&k<50;k++){
  cout<<setiosflags(ios::right)<<setw(2)<<k+1<<' ';
  cout<<setiosflags(ios::right)<<setw(6)<<v[k].bian<<' ';
  cout.setf(ios::left,ios::adjustfield);
  cout<<setw(15)<<v[k].acc<<' ';
  cout<<setiosflags(ios::right)<<setw(5)<<v[k].time<<' ';
  cout<<setiosflags(ios::right)<<setw(5)<<v[k].nei<<' ';
  cout<<setiosflags(ios::right)<<setw(3)<<v[k].vcb<<' '<<v[k].t1<<' '<<v[k].t2<<endl;
 }
 
 return 0;
}

 

 

知道我哪里错的大神,求指出啊!!

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值