九度:1013<开门人>
2014-03-01 21:41
351 查看
浙大2005年研究生机试
此题可排序解。这是看到别人的代码,自己又按排序做了一下,排序使用sort,两次排序,分别求最早与最晚。
自己的解法有两种:
此题可排序解。这是看到别人的代码,自己又按排序做了一下,排序使用sort,两次排序,分别求最早与最晚。
自己的解法有两种:
第一时间作为字符串处理
作为字符串处理,时间也是可以直接比较的。#include <stdio.h> #include <iostream> #include <cstring> using namespace std; struct People{ char name[20]; char ct[20];//come time char lt[20];//leave time }; int main(){ #ifdef ONLINE_JUDGE #else freopen("E:\\in.txt", "r", stdin); #endif int days; while(scanf("%d", &days) != EOF){ while(days-->0){ People fcome, lleave; People t; int np;//num of people int i; scanf("%d", &np); for(i=0; i<np; i++){ scanf("%s %s %s", t.name, t.ct, t.lt); if(i==0){ strcpy(fcome.name, t.name); strcpy(fcome.ct, t.ct); strcpy(lleave.name, t.name); strcpy(lleave.lt, t.lt); continue; } if(strcmp(t.ct, fcome.ct) < 0){ strcpy(fcome.name, t.name); strcpy(fcome.ct, t.ct); }// more ahead if(strcmp(t.lt, lleave.lt) > 0){ strcpy(lleave.name, t.name); strcpy(lleave.lt, t.lt); }// more late }// for: compare cout << fcome.name << ' ' << lleave.name << endl; } }//while return 0; }
第二设立专门的时间格式
#include <stdio.h> #include <iostream> #include <cstring> using namespace std; struct Time{ int hour; int minute; int sec; }; struct People{ char name[20]; struct Time ct;//come time struct Time lt;//leave time }; int cmp(Time x, Time y){ if(x.hour < y.hour) return -1; else if(x.hour > y.hour) return 1; else if(x.minute < y.minute) return -1; else if(x.minute > y.minute) return 1; else if(x.sec < y.sec) return -1; else return 1; } int main(){ #ifdef ONLINE_JUDGE #else freopen("E:\\in.txt", "r", stdin); #endif int days; while(scanf("%d", &days) != EOF){ while(days-->0){ People fcome, lleave; People t; int np; scanf("%d", &np); int i; for(i=0; i<np; i++){ scanf("%s %d:%d:%d %d:%d:%d", t.name, &t.ct.hour, &t.ct.minute, &t.ct.sec, &t.lt.hour, &t.lt.minute, &t.lt.sec); if(i==0){ strcpy(fcome.name, t.name); fcome.ct.hour=t.ct.hour; fcome.ct.minute=t.ct.minute; fcome.ct.sec=t.ct.sec; strcpy(lleave.name, t.name); lleave.lt.hour=t.lt.hour; lleave.lt.minute=t.lt.minute; lleave.lt.sec=t.lt.sec; continue; } if(cmp(t.ct, fcome.ct) < 0){ strcpy(fcome.name, t.name); fcome.ct.hour=t.ct.hour; fcome.ct.minute=t.ct.minute; fcome.ct.sec=t.ct.sec; }// more ahead if(cmp(t.lt, lleave.lt) > 0){ strcpy(lleave.name, t.name); lleave.lt.hour=t.lt.hour; lleave.lt.minute=t.lt.minute; lleave.lt.sec=t.lt.sec; }// more late }// for: compare cout << fcome.name << ' ' << lleave.name << endl; } }//while return 0; }
相关文章推荐
- 九度:1447<最短路径><Floyd><Dijstra>
- <九度 OJ>题目1012:畅通project
- <九度 OJ>题目1061:成绩排序
- 九度:1014<排序>
- 九度:1015<A+B>
- 九度:1009<二叉搜索树><二叉排序树><建立二叉树><遍历>
- 九度:1008<最短路径>
- 九度:1017<并查集><Kruskal><MST>
- 九度:1016<火星A+B>
- 九度:1201<二叉排序树><建立,遍历>
- 九度:1162<I wanna go home><最短路径>
- 九度:1448<拓扑排序>
- 九度:1024<并查集>
- 九度:1018<Hash>
- 九度:1029<魔咒词典><排序查找>
- 九度:1449<拓扑排序><DAG>
- 九度:1028<并查集>
- 九度:1019<模拟>
- 九度:1027<欧拉回路><搜索>
- 九度:1045<百鸡问题><枚举>