IDEA
1.测试点二容易超时,所有的cin,cout改为scanf和printf;
2.用scanf输入string类型
#include <stdio.h>
#include <string>
using namespace std;
int main()
{
string a;
a.resize(100); //需要预先分配空间
scanf("%s", &a[0]);
//puts(a.c_str());
printf("%s",a.c_str());
return 0;
}
#include<iostream>
#include<cstdio>
#include<vector>
#include<cstring>
#include<algorithm>
#include<fstream>
using namespace std;
struct Person{
string name;
int age;
int worth;
};
int cmp(Person p1,Person p2){
if(p1.worth==p2.worth){
if(p1.age==p2.age){
return p1.name<p2.name;
}
return p1.age<p2.age;
}
return p1.worth>p2.worth;
}
int main(){
#ifndef ONLINE_JUDGE
freopen("input.txt","r",stdin);
#endif
int n,k;
scanf("%d %d",&n,&k);
vector<Person> vec;
for(int i=0;i<n;i++){
Person person;
person.name.resize(8);
scanf("%s %d %d",&person.name[0],&person.age,&person.worth);
vec.push_back(person);
}
sort(vec.begin(),vec.end(),cmp);
for(int j=1;j<=k;j++){
printf("Case #%d:\n",j);
int num,amin,amax;
cin>>num>>amin>>amax;
int count=0;
vector<Person> res;
for(int i=0;i<vec.size();i++){
if(vec[i].age>=amin&&vec[i].age<=amax){
printf("%s %d %d\n",vec[i].name.c_str(),vec[i].age,vec[i].worth);
count++;
if(count==num){
break;
}
}
}
if(!count){
printf("None\n");
}
}
#ifndef ONLINE_JUDGE
fclose(stdin);
#endif
return 0;
}