1055. The World's Richest (25)

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


CODE

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



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值