【杭电】[1234]开门人和关门人
也是挺重要的一题
第一次用到的结构体
在一些地方纠结了好久
而且第一次没接触到sort
所以写的比较长
#include<stdio.h>
#include<string.h>
struct qd {
char s[15];
int sh;
int sm;
int ss;
int eh;
int em;
int es;
};
int main() {
int N,M;
scanf("%d",&N);
while(N--) {
scanf("%d",&M);
int i;
struct qd a[M],b,e;
for(i=0; i<M; i++)
scanf("%s %d:%d:%d %d:%d:%d",&a[i].s,&a[i].sh,&a[i].sm,&a[i].ss,&a[i].eh,&a[i].em,&a[i].es);
for(i=0; i<M; i++) {
if(i==0) {
b=a[i];
e=a[i];
} else {
if(a[i].sh<b.sh)
b=a[i];
else if(a[i].sh==b.sh) {
if(a[i].sm<b.sm)
b=a[i];
else if(a[i].sm==b.sm) {
if(a[i].ss<b.ss)
b=a[i];
}
}
if(a[i].eh>e.eh)
e=a[i];
else if(a[i].eh==e.eh) {
if(a[i].em>e.em)
e=a[i];
else if(a[i].em==e.em) {
if(a[i].es>e.es)
e=a[i];
}
}
}
}
printf("%s %s\n",b,e);
}
return 0;
}
下面是后来写的sort版
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
struct qd {
char s[20];
char kai[10];
char guan[10];
};
bool vsk(qd A,qd B) {
return strcmp(A.kai,B.kai)<0;
}
bool vsg(qd A,qd B) {
return strcmp(A.guan,B.guan)>0;
}
int main() {
int N,M;
scanf("%d",&N);
while(N--) {
scanf("%d",&M);
int i;
struct qd a[M];
for(i=0; i<M; i++)
scanf("%s %s %s",&a[i].s,&a[i].kai,&a[i].guan);
sort(a,a+M,vsk);
printf("%s ",a[0].s);
sort(a,a+M,vsg);
printf("%s\n",a[0].s);
}
return 0;
}
明显短了好多啊~
C++的用法
题目地址:【杭电】[1234]开门人和关门人