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

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

### 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<<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;
}

• 本文已收录于以下专栏：

## HD ACM C++ 1020 此文为了吐槽并想求大神解惑

Encoding Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total...

## 两个有序数组合起来求第k小的数+左老师专访ACM大神（笔记）8月5日斗鱼直播实录

1.长度相等的两个有序数组寻找上中位数注：上中位数1 2 3 4 5 6为3（偶数两个中位数为前面那个） 思路：去掉不可能为上中位数的，剩下的简化组合求上中位数。1.1 奇数序列 位置 位置...

## 某校大神很给力的ACM总结

• 2013年05月20日 20:58
• 58KB
• 下载

## acm程序例题2道，还有一道思考的题目（第四题）

• 2010年04月08日 18:36
• 8KB
• 下载

## 纠结了好久才弄得明白一点点的汉诺塔问题，现在把一些方程与大家分享一下！

谢谢各位的支持！下面是我这两天仔细研究的结果，希望大家看看有什么不对！有的话，请提出你的意见，谢谢了！这个程序是目的是：将A柱上的金盘移到B柱上...

## 一道简单的ACM题目讨论

举报原因： 您举报文章：一道ACM题目，纠结了我好久，就是通不过，求大神看看 色情 政治 抄袭 广告 招聘 骂人 其他 (最多只允许输入30个字)