1006 Entrar e Sair (25 分)
No início de cada dia, a primeira pessoa que sinais na sala de computador vai abrir a porta, eo último que assina fora vai trancar a porta. Dado os registros de assinar em de e para fora de, você é suposto para encontrar os que tenham desbloqueado e trancou a porta naquele dia.
Especificação de entrada:
Cada arquivo de entrada contém um caso de teste. Cada caso contém os registros por um dia. O caso começa com um número inteiro positivo M, que é o número total de registos, seguido de M linhas, cada no formato:
ID_Number Sign_in_time Sign_out_time
onde os tempos são dados no formato HH: MM: SS, e ID_Number é uma string com não mais de 15 caracteres.
Especificação de saída:
Para cada caso de teste, imprima em uma linha os números de identificação das pessoas que tenham desbloqueado e trancou a porta naquele dia. Os dois números de identificação deve ser separada por um espaço.
Nota: É garantido que os registros são consistentes. Isto é, o sinal em tempo deve ser mais cedo do que o sinal de um tempo para cada pessoa, e não há duas pessoas entrar ou sair no mesmo momento.
Entrada da amostra:
3
CS301111 15:30:28 17:00:10
SC3021234 08:00:00 11:25:25
CS301133 21:45:00 21:58:40
Exemplo de saída:
SC3021234 CS301133
falar é fácil, mostrar meu código
#include <stdio.h>
#include <string>
#include <iostream>
using namespace std;
int main(){
int n;
scanf("%d",&n);
string laterName,earlyName;
int maxT=0,minT=99999999;
while(n--!=0){
string s;int a,b,c,e,f,g;
cin >> s;
scanf("%d:%d:%d",&a,&b,&c);
scanf("%d:%d:%d",&e,&f,&g);
int t=a*60*60+b*60+c;
int l = e*3600+f*60+g;
if(l>maxT){
maxT=l;
laterName=s;
}
if(t<minT){
minT=t;
earlyName=s;
}
}
cout << earlyName << " " << laterName;
return 0;
}