Niestety, nie byliśmy w stanie w pełni poprawnie wyświetlić tego pliku, ponieważ nie jest zakodowany w UTF-8.
Możesz pobrać ten plik i spróbować otworzyć go samodzielnie.
program kie;
type
tab = array[1..1000000] of word;
var
n: longword; //liczba banknot�w
a: array[1..1000000] of word; //nomina�y banknot�w
S: longword; //suma na kieszonkowe
i,j: longword;
tmp: word;
procedure qsort(var t:tab; l,r:longword);
var
p,tmp: longword;
i,j: longword;
begin
i:=l; j:=r;
tmp:=(l+r) div 2;
p:=t[tmp];
repeat
while t[i]<p do i:=i+1;
while p<t[j] do j:=j-1;
if i<=j then
begin
tmp:=t[i]; t[i]:=t[j]; t[j]:=tmp;
tmp:=t[i]; t[i]:=t[j]; t[j]:=tmp;
tmp:=t[i]; t[i]:=t[j]; t[j]:=tmp;
i:=i+1; j:=j-1
end
until i>=j;
if l<j then qsort(t,l,j);
if i<r then qsort(t,i,r)
end;
begin
readln(n);
if n=1 then
begin
readln(S);
if (S mod 2) > 0 then writeln('NIESTETY')
else writeln(S)
end
else
begin
i:=0;
repeat
read(tmp);
if (tmp mod 2)>0 then
begin
i:= i+1; a[i]:=tmp;
end
else S:=S+tmp;
j:=j+1
until j>=n;
if (i mod 2)=0 then
for j:=1 to i do
S:=S+a[j]
else
begin
qsort(a,1,i);
for j:=2 to i do
S:=S+a[j]
end;
writeln(S);
end;
end.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 | program kie; type tab = array[1..1000000] of word; var n: longword; //liczba banknot�w a: array[1..1000000] of word; //nomina�y banknot�w S: longword; //suma na kieszonkowe i,j: longword; tmp: word; procedure qsort(var t:tab; l,r:longword); var p,tmp: longword; i,j: longword; begin i:=l; j:=r; tmp:=(l+r) div 2; p:=t[tmp]; repeat while t[i]<p do i:=i+1; while p<t[j] do j:=j-1; if i<=j then begin tmp:=t[i]; t[i]:=t[j]; t[j]:=tmp; tmp:=t[i]; t[i]:=t[j]; t[j]:=tmp; tmp:=t[i]; t[i]:=t[j]; t[j]:=tmp; i:=i+1; j:=j-1 end until i>=j; if l<j then qsort(t,l,j); if i<r then qsort(t,i,r) end; begin readln(n); if n=1 then begin readln(S); if (S mod 2) > 0 then writeln('NIESTETY') else writeln(S) end else begin i:=0; repeat read(tmp); if (tmp mod 2)>0 then begin i:= i+1; a[i]:=tmp; end else S:=S+tmp; j:=j+1 until j>=n; if (i mod 2)=0 then for j:=1 to i do S:=S+a[j] else begin qsort(a,1,i); for j:=2 to i do S:=S+a[j] end; writeln(S); end; end. |
English