Diễn đàn tin học Nguyễn Văn Linh
Bạn có muốn phản ứng với tin nhắn này? Vui lòng đăng ký diễn đàn trong một vài cú nhấp chuột hoặc đăng nhập để tiếp tục.

Diễn đàn tin học Nguyễn Văn Linh

The second house for every one
 
Trang ChínhLatest imagesTìm kiếmĐăng kýĐăng Nhập

 

 Xếp gạch

Go down 
2 posters
Tác giảThông điệp
Hovanthong
Admin
Admin
Hovanthong


Tổng số bài gửi : 101
Join date : 25/07/2010
Age : 30
Đến từ : Hưng nguyên-Nghệ An

Xếp gạch Empty
Bài gửiTiêu đề: Xếp gạch   Xếp gạch I_icon_minitimeTue 27 Jul 2010, 13:20

Cho một dãy N viên gạch lần lượt có độ cách nhiệt là các số a1.. aN. Nếu xếp lần lượt các viên gạch theo trình tự đó thì độ cách nhiệt cả khối là a1 + a2 + ... + aN + max(0, a2 - a1) + max(0, a3 - a2) + ... + max(0, aN - aN - 1). Nhiệm vụ của bạn là tìm cách xếp sao cho độ cách nhiệt của cả khối là lớn nhất có thể.
Dữ liệu

* Dòng đầu ghi số nguyên dương N (0 < n ≤ 10^5).
* N dòng sau mỗi dòng ghi một số ai ( 1 ≤ i ≤ N và 1 ≤ ai ≤ 10000).

Kết qủa

Ghi trên một dòng kết quả cần tìm.
Ví dụ


Dữ liệu:
4
5
4
1
7
Kết qủa
24
Về Đầu Trang Go down
http://thongtra.forum-viet.com
littlelee
Admin
Admin
littlelee


Tổng số bài gửi : 415
Join date : 20/12/2009
Age : 29
Đến từ : Nghĩa địa

Xếp gạch Empty
Bài gửiTiêu đề: Re: Xếp gạch   Xếp gạch I_icon_minitimeWed 28 Jul 2010, 09:20

Xếp tăng dần laughing rolling on the floor
Về Đầu Trang Go down
Hovanthong
Admin
Admin
Hovanthong


Tổng số bài gửi : 101
Join date : 25/07/2010
Age : 30
Đến từ : Hưng nguyên-Nghệ An

Xếp gạch Empty
Bài gửiTiêu đề: Re: Xếp gạch   Xếp gạch I_icon_minitimeWed 28 Jul 2010, 15:50

Code:

Const          MaxN=100001;
Var            N,i:longint;
                S:longint;
                A:Array[1..MaxN] of longint;

procedure      Sort(L,R:longint);
Var            i,j,Key,Tam:longint;
Begin
                If L>=R then Exit;
                i:=L;
                j:=R;
                Key:=A[(L+R) div 2];
Repeat
                While A[i]<Key do Inc(i);
                While A[j]>Key do Dec(j);
                If i<=j then
                Begin
                        Tam:=A[i];
                        A[i]:=A[j];
                        A[j]:=Tam;
                        Inc(i);
                        Dec(j);
                End;
Until          i>j;
                Sort(i,R);
                Sort(L,j);
End;

BEGIN
                Readln(N);

                For i:=1 to N do
                Begin
                        Readln(A[i]);
                        S:=S+A[i];
                End;
                Sort(1,N);
                For i:=1 to N div 2 do
                Begin
                        S:=S+A[N-i+1]-A[i];
                End;
                Writeln(S);
END.




Về Đầu Trang Go down
http://thongtra.forum-viet.com
Sponsored content





Xếp gạch Empty
Bài gửiTiêu đề: Re: Xếp gạch   Xếp gạch I_icon_minitime

Về Đầu Trang Go down
 
Xếp gạch
Về Đầu Trang 
Trang 1 trong tổng số 1 trang

Permissions in this forum:Bạn không có quyền trả lời bài viết
Diễn đàn tin học Nguyễn Văn Linh :: Góc tin học :: Lớp chuyên tin-
Chuyển đến