Bukit dan Lembah

Bukit dan Lembah

Batas Waktu 1 detik
Batas Memori 32 MB
Sumber OSN 2005
Pak Dengklek memberikan Anda data ketinggian yang di catat dalam perjalanannya dari suatu posisi awal ke posisi akhir. Data ketinggian adalah bilangan-bilangan positif. Jalan kadang menaik, kadang menurun, kadang datar saja. Posisi di mana terjadi perubahan menaik kemudian menurun (boleh diselingi jalan datar) didefinisikan sebagai puncak dari suatu bukit. Sebaliknya, posisi terjadi perubahan dari menurun terus menaik (boleh diselingi bagian jalan yang datar) didefinisikan sebagai titik terbawah suatu lembah. Walaupun perubahan tersebut kecil saja, definisi itu tetap berlaku.
Carilah beda ketinggian terbesar antara puncak bukit dengan titik terbawah lembah berikutnya atau sebaliknya antara titik terbawah lembah dengan puncak bukit berikutnya pada data perjalanan tersebut.

Format Masukan

Banyak baris, antara 2 sampai 600.000 baris, yang masing-masing berisi sebuah bilangan bulat antara 0 sampai 1.000.000.000

Format Keluaran

Sebuah baris berisi sebuah bilangan bulat yaitu beda ketinggian terbesar yang diperoleh.

Contoh Masukan

10
26
26
35
35
27
30
30
45
10
8
9

Contoh Keluaran

37

Penjelasan
 
Ada 12 data. Beda ketinggian pertama (10 ke 35) adalah 25, beda kedua (35 ke 27) adalah 8, beda ketiga (27 ke 45) adalah 18, beda ketinggian keempat (45 ke 8) adalah 37, dan beda ketinggian kelima (8-9) adalah 1. Jadi beda ketinggian tertinggi adalah 37.

Ini jawaban saya (Pascal) :
 
var
    a,max,min,b : longint;
    n : array[1..1000000] of longint;
begin
    a := 0;
    while not eof(input) do
    begin
        inc(a);
        readln(n[a]);
    end;
    max := n[1];
    min := n[1];
    for b := 2 to a do
    begin
        if n[b] > max then
            max := n[b];
        if n[b] < min then
            min := n[b];
    end;
    writeln(max-min);
end. 
 


Next PostPosting Lebih Baru Previous PostPosting Lama Beranda

1 komentar: