1006. Sign In and Sign Out

这道题。。。还是不知道自己错在了那里。。。每次都只有一个测试点通不过要闹哪样

#include <string>
#include <iostream>
using namespace std;
typedef struct{
    int hour;
    int min;
    int sec;
}mytime;

struct name{
    string name;
    mytime start;
    mytime end;
};
int main(void){
    int n;
    char temp;
    string startname,endname;
    struct name stu[65536];
    cin>>n;
    for(int k=0;k<n;k++){
        cin>>stu[k].name;
        cin>>stu[k].start.hour>>temp>>stu[k].start.min>>temp>>stu[k].start.sec;
        cin>>stu[k].end.hour>>temp>>stu[k].end.min>>temp>>stu[k].end.sec;
    }
    mytime  early,late;
    early.hour=23;
    early.min=early.sec=59;
    late.hour=0;
    late.min=late.sec=0;
    for(int k=0;k<n;k++){
            if(stu[k].start.hour<=early.hour){
                if(stu[k].start.min<=early.min){
                    if(stu[k].start.sec<=early.sec){
                        early.hour=stu[k].start.hour;
                        early.min=stu[k].start.min;
                        early.sec=stu[k].start.sec;
                        startname=stu[k].name;
                    }
                }
            }
        }
    for(int k=0;k<n;k++){
        if(stu[k].end.hour>=late.hour){
            if(stu[k].end.min>=late.min){
                if(stu[k].end.sec>=late.sec){
                    late.hour=stu[k].end.hour;
                    late.min=stu[k].end.min;
                    late.sec=stu[k].end.sec;
                    endname=stu[k].name;
                }
            }
        }
    }
    cout<<startname<<" "<<endname<<endl;
    
    
    return 0;
}
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
 
int main(){
    //freopen("in.txt","r",stdin);
    //freopen("out.txt","w",stdout);
    int n,i;
    scanf("%d",&n);
    char id[15],in[10],out[10];
    char firstId[15],lastId[15],firstIn[10],lastOut[10];
    int flag = 1;
 
    for(i=0; i<n; i++){        
        scanf("%s %s %s",id,in,out);
        if(flag){
            flag = 0;
            strcpy(firstId,id);
            strcpy(lastId,id);
            strcpy(firstIn,in);
            strcpy(lastOut,out);
        }else{
            if(strcmp(in,firstIn) < 0) strcpy(firstIn,in), strcpy(firstId,id);
            if(strcmp(out,lastOut) > 0) strcpy(lastOut,out), strcpy(lastId,id);
        }
    }
 
    printf("%s %s",firstId,lastId);
 
    return 0;
}

 

posted @ 2015-03-26 23:22  MQ-380  阅读(131)  评论(0)    收藏  举报