Evo zadataka:
1.
Kod:
program zad1;
{$mode objfpc}
var
i, NumSlova, Max, Num : integer;
NumRijeci : integer;
maxstr : string;
Slova, TempSlova : array[97..122] of integer;
Rijeci : array[1..10000] of string;
Izlaz : array[1..10000] of string;
procedure LoadData;
var
i : integer;
TempChar : char;
begin
for i := 97 to 122 do Slova[i] := 0;
writeln('Unesite N:');
Readln(NumSlova);
for i := 1 to NumSlova do
begin
Writeln('Unesite ', i, '. slovo:');
Readln(TempChar);
Inc(Slova[Ord(TempChar)]);
end;
Writeln('Unesite M:');
Readln(NumRijeci);
for i := 1 to NumRijeci do
begin
Writeln('Unesite ', i, '. rijec:');
Readln(Rijeci[i]);
end;
for i := 97 to 122 do TempSlova[i] := Slova[i];
end;
procedure Reset();
var
i : integer;
begin
for i := 97 to 122 do
Slova[i] := TempSlova[i];
end;
procedure Work(Sender : integer);
var
i : integer;
begin
for i := 1 to Length(Rijeci[Sender]) do
if Slova[Ord(Rijeci[Sender][i])] = 0 then
begin
Reset;
Exit;
end
else Dec(Slova[Ord(Rijeci[Sender][i])]);
Reset;
if Max < Length(Rijeci[Sender]) then Max := Length(Rijeci[Sender]);
Inc(Num);
Izlaz[Num] := Rijeci[Sender];
end;
begin
Num := 0;
Max := -1;
LoadData;
for i := 1 to NumRijeci do
if Length(Rijeci[i]) <= NumSlova then Work(i);
writeln(Max);
if Max > -1 then
begin
MaxStr := Izlaz[1];
for i := 2 to Num do
if ((MaxStr > Izlaz[i]) or (Length(MaxStr) <> Max)) and (Length(Izlaz[i]) = Max) then
MaxStr := Izlaz[i];
Writeln(MaxStr);
end;
Readln;
end.
2.
Kod:
program vlada;
{$mode objfpc}
var
Niz : array[0..20] of integer;
Prag : integer;
Izlaz : integer;
procedure LoadData;
var
i : integer;
begin
Writeln('Broj Stranki:');
Readln(Niz[0]);
Writeln('Unesite Mjesta:');
Prag := 0;
for i := 1 to Niz[0] do
begin
Readln(Niz[i]);
Prag := Prag + Niz[i];
end;
Prag := Prag div 2 + 1;
end;
procedure Work(Value, Index : integer);
var
i : integer;
begin
if Value >= Prag then Inc(Izlaz);
for i := Index + 1 to Niz[0] do
Work(Value + Niz[i], i);
end;
begin
Izlaz := 0;
LoadData;
Work(0, 0);
Writeln(Izlaz);
Readln;
end.
3.
Kod:
program trans;
{$mode objfpc}
var
Prvi, Drugi, Trazeni, Min : integer;
procedure Work(A, B, K : integer);
begin
if K = 13 then exit;
if (A = Trazeni) or (B = Trazeni) then
if (Min > K) or (Min = -1) then Min := K;
Work(-A, B, K + 1);
Work(A, -B, K + 1);
Work(A + B, B, K + 1);
Work(A, A + B, K + 1);
end;
begin
Min := -1;
Writeln('Unesite A, B, C:');
Readln(Prvi, Drugi, Trazeni);
Work(Prvi, Drugi, 0);
Writeln(Min);
Readln;
end.
4.
Kod:
program n_ti_clan;
{$mode objfpc}
var
Ulaz : integer;
i, Count : longint;
function Is235(Sender : Longint) : boolean;
var
IsDo : boolean;
begin
result := false;
repeat
IsDo := false;
if Sender mod 2 = 0 then
begin
Sender := Sender div 2;
IsDo := true;
continue;
end;
if Sender mod 3 = 0 then
begin
Sender := Sender div 3;
IsDo := true;
continue;
end;
if Sender mod 5 = 0 then
begin
Sender := Sender div 5;
IsDo := true;
continue;
end;
until not IsDo;
if Sender = 1 then result := true;
end;
begin
writeln('Zadatak za 1500 radi 3-5 minute, u zadatku NESTOJI vremensko ograniceje!');
Count := 0;
i := 0;
writeln('Ulaz:');
readln(Ulaz);
if (Ulaz < 1) and (Ulaz> 1500) then
begin
Writeln('Pogresan ulaz!');
halt;
end;
repeat
Inc(i);
if Is235(i) then Inc(Count);
until Count = ulaz;
Writeln(i);
Readln;
end.