10.04.2017

Số có giá trị số lớn nhất

Chọn HSG lớp 12 Bạc Liêu 2012 - Bảng A - Ngày 2 - Bài 2/3
Cho xâu s gồm ít nhất 3 kí tự số. Xóa bỏ một số kí tự trong xâu s chỉ để lại 3 kí tự số sao cho, vẫn giữ nguyên thứ tự của chúng tạo nên một số có giá trị lớn nhất.
- Dữ liệu vào: từ tệp f1 gồm 1 dòng chứa xâu s
- Dữ liệu ra: Ghi ra tệp f2 xâu s chứa 3 kí số còn lại tạo thành số lớn nhất.
Ví dụ:
   Cau3.inp
      124512 Hoc tin8126123
   Cau3.out
      863

                                                           Lời giải tham khảo

Program BL3;
Var F: text;
    a, b, m1, m2, m3: string;
    c: array[1..100] of longint;
    k: char;
    i, j, d, h, g: longint;
    e, max: integer;
BEGIN
Assign(F,'BL2.INP');
Reset(F);
Readln(F,a);
Close(F);
Assign(F,'BL2.OUT');
Rewrite(F);
j:= 0;
For i:= 1 to length(a) do
    For k:= '0' to '9' do
        If a[i]= k then
           Begin
           j:= j+ 1;
           Val(a[i],c[j],e);
           End;
d:= j;
max:= c[1];
For i:= 2 to d- 2 do
    If c[i]> max then
    Begin
         max:= c[i];
         g:= i;
    End;
Str(max,m1);
max:= c[g+ 1];
For i:= g+ 2 to d- 1 do
    If c[i]> max then
    Begin
         max:= c[i];
         g:= i;
    End;
Str(max,m2);
max:= c[g+ 1];
For i:= g+ 2 to d do
    If c[i]> max then
    Begin
         max:= c[i];
         g:= i;
    End;
Str(max,m3);
b:= m1+ m2+ m3;
Writeln(F,b);
Close(F);
END.

No comments:

Post a Comment

Cảm ơn bạn đã nhận xét