Ім′я вхідного файлу:
Ім′я вихідного файлу:
Обмеження по часу:
Обмеження по пам′яті:
|
casino.in
casino.out
1 сек
64 мегабайт
|
Одного разу Степан вирішив відвідати казино. Не будучи
заядлим любителем азартних ігор, він зрозумів, що зовсім не знає правил ні
однієї з ігор, доступних у казіно. Недовго думаючи, Степан вирішив все-таки
пограти. Його зацікавила гра з досить нехитрими правилами.
На ігровому столі лежать N карток. На кожній картці
написано ціле додатнє число. Гра відбувається між гравцем і круп′є. Картки
лежать на столі числами вниз. Гра полягає в тому, що гравець відкриває рівно
N/2 карток. Сума всіх чисел, написаних на картках відкритих гравцем,
називається «сумою гравця».
Наступним ходом круп′є відкриває N/2 карток, що
залишились. Сума всіх чисел, написаних на картках відкритих круп′є, називається
«сумою круп′є».
Виграш гравця визначається різницею чисел між «сумою
гравця» і «сумою круп′є». Очевидно, що отримана різниця може бути від′ємним
числом. Це свідчить про те, що гравець програв і винен казино відповідну суму.
Вск б нічого, але Степан володіє даром бачити написи
крізь папір будь-якої щільності.
Ваше завдання визначити максимальну суму виграшу, яку
може отримати Степан з урахуванням того, що він бачить всі числа, написані на
картках.
Формат вхідних даних: вхідний файл містить один рядок,
у якому можуть бути тільки цифри, маленькі та великі латинські літери.
Кількість символів у рядку не перевищує 10000.
Формат вихідних даних: єдиний рядок вихідного файлу має
містити слово YES, якщо заданий пароль є криптостійким, і NO – в іншому випадку (великими
латинськими буквами).
Приклади вхідних та вихідних даних:
password.in
|
password.out
|
1aA
|
NO
|
Aa2BCc12
|
YES
|
AAAaaaAAA
|
NO
|
Мій варіант розв'язання
var
c,i,k,sumgr,sumkr,bonus,pol:integer;
a:array[1..100] of integer;
label h;
begin
write('N=');
read(c);
write('vvedite chisla-');
for i:=1 to c do readln(a[i]);
sumgr:=0;
sumkr:=0;
h:for i:=1 to c do begin
if
(a[i]<a[i+1]) and (i+1<=c) then begin
k:=a[i];
a[i]:=a[i+1];
a[i+1]:=k;
end;
end;
for i:=1 to c do begin
if
(a[i]<a[i+1]) and (i+1<=c) then goto h;
end;
pol:=c div 2;
for i:=1 to pol do
sumgr:=sumgr+a[i];
for i:=pol+1 to c do
sumkr:=sumkr+a[i];
bonus:=sumgr-sumkr;
writeln('bonus= ',bonus);
end.
|