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. |