A1095——Cars on Campus(测试点1、测试点2)

贴个没用map的代码测试,测试点1和2都没过,调整下代码应该可以把测试点1过了(但我找了半天没找出错误点!)

测试点 结果 耗时 内存
0

答案正确

3 ms 296 KB
1

答案错误

23 ms 680 KB
2

运行超时

-- 0 KB
3

答案正确

3 ms 228 KB
4

答案正确

65 ms 896 KB
5

答案正确

19 ms 680 KB

不用map的代码(测试点1、3没过)

#include 
#include 
#include 
using namespace std;
const int maxn=10010;
struct User{
     char number[10];
     int time;
     char statu[5];
     int isok;
     int total;
     int longtime;
}stu[maxn];
int n;

bool cmp(User a,User b){
    if(strcmp(a.number,b.number)!=0){
         return strcmp(a.number,b.number)<0;
    }else{
        return a.timeb.longtime;
    }else{
        return strcmp(a.number,b.number)<0;
    }
}

bool cmp2(User a,User b){
    if(a.isok!=b.isok){
         return a.isok>b.isok;
    }else{
            return a.time

使用map的代码

#include 
#include 
#include 
#include 
#include           //map头文件
using namespace std;
const int maxn=10010;
struct User{
     char number[10];
     int time;
     char statu[5];
     int total;
     int longtime;
}stu[maxn],real[maxn];
map partTime;  //map中字符串得用string,并且前面要加#inlcude

bool cmp(User a,User b){
    if(strcmp(a.number,b.number)!=0){
         return strcmp(a.number,b.number)<0;
    }else{
        return a.time::iterator f;                  //map的迭代器定义
   for(f=partTime.begin();f!=partTime.end();f++){     
        if(f->second == maxtime){
            printf("%s ",f->first.c_str());  //用printf输出string时,需要先用c.str()将string转化为字符串数组再输出
        }
   }

    printf("%02d:%02d:%02d\n",maxtime/3600,(maxtime/60)%60,maxtime%60);

return 0;
}

 

 

你可能感兴趣的:(PAT刷题)