giải bài YOUNGCLA spoj – 13380. Birthdates

Nguồn đề bài: http://www.spoj.com/PTIT/problems/YOUNGCLA/

1. Đề bài YOUNGCLA spoj

Viết chương trình tìm người trẻ nhất và già nhất trong lớp.

Input

Dòng 1 chứa số n (1<=n<=100), số người trong lớp.

N dòng sau, mỗi dòng là thông tin 1 người có dạng:

personName dd mm yyyy

Trong đó: personName là tên không quá 15 chữ cái, dd,mm,yyyy lần lượt là ngày, tháng, và năm sinh.

Output

Dòng 1: tên người trẻ nhất

Dòng 2: tên người già nhất

Example

Input:

5
Garfield 20 9 1990

5
Mickey 1 10 1991
Alice 30 12 1990
Tom 15 8 1993
Jerry 18 9 1990
Garfield 20 9 1990

Output:
Tom
Jerry

2. Hướng dẫn YOUNGCLA spoj

đây là bài tập duyệt khá đơn giản. chỉ cần đổi ngày tháng năm sang ngày rồi duyệt tìm min, tìm max là được.

3. Code tham khảo YOUNGCLA spoj

const   fi='';
        nmax=100;
type    data=longint;
var
        F:text;
        ten:array[1..nmax] of string;
        a:array[1..nmax] of data;
        n:data;

procedure xuli;
var     i,x,y,z:data;
        s:char;
        vtmin,vtmax,min,max:data;
begin
        assign(f,fi); reset(f);
        readln(f,n);
        for i:=1 to n do
                begin
                        repeat
                                read(f,s);
                                if s<>' ' then
                                        ten[i]:=ten[i]+s
                                else
                                        break;
                        until false;
                        readln(f,x,y,z);
                        a[i]:=x+y*30+z*365;
                end;
        close(f);
        max:=0;
        min:=high(data);
        for i:=1 to n do
                begin
                        if min>a[i] then
                                begin
                                        min:=a[i];
                                        vtmin:=i;
                                end;
                        if max<a[i] then
                                begin
                                        max:=a[i];
                                        vtmax:=i;
                                end;
                end;
        writeln(ten[vtmax]);
        write(ten[vtmin]);
end;


begin
        xuli;
end.

 

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *