GitBook

这里写图片描述 这里写图片描述

也是挺重要的一题 第一次用到的结构体 在一些地方纠结了好久

而且第一次没接触到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]开门人和关门人