В есебі. Қала жолдарын бояу

А есебі: Жол

Сізге екі жол s пен t берілген. Екі жолда да кездесетін ең үлкен жолдың ұзындығын табыңыз.

Мәліметтерді енгізу форматы:

Берілгеннің бірінші жолында s берілген. Екінші жолында t берілген. Жолдар тек қана кішкентай ағылшын әріптерінен тұрады. 1<=жолдың ұзындығы<=1000

Мәліметтерді шығару форматы:

Тапсырманың жауабын шығарыңыз

Мысал/ Пример

A.in A.out Комментарий
kazakhstan astana stan

 

Program esepA;

label 1;

var i,j,n,n1,n2,max,q:integer;

s,t,str:string;

f,f1:text;

begin

assign(f,'a.in'); reset(f);

assign(f1,'a.out'); rewrite(f1);

read(f,s,t);

n:=length(s); q:=1;

while q<=n do

begin

if s[q]=' ' then

begin

t:=copy(s,q+1,n-q);

delete(s,q+1,n-q);

goto 1;

end;

q:=q+1;

end;

1: n1:=length(t); max:=0;

for i:=1 to n1 do

for j:=i to n1 do

begin

str:=copy(t,i,j);

if pos(str,s)>1 then

begin

n2:=length(str);

if n2>max then max:=n2;

end;

end;

writeln(f1,max);

close(f);

close(f1);

end.

 

Енгізу файлының аты: B.in

Шығару файлының аты: B.out

Есептің жауабы файлының аты: B.{c,cpp,pas}

Уақыт шектеу: 1 секунд

Жадыға шектеу: 64 мегабайт

B есебі: Жоғалған сан

Сізге 1-ден (n+1)-ге дейінгі бүтін сандар берілген. Ол сандардың арасында біреуі жеткіліксіз, сол санды табыңыз.

Мәліметтерді енгізу форматы:

Берілгеннің бірінші жолында бір бүтін сан 1<=N<=100000 берілген. Екінші жолда пробелмен бөлінген 1-ден (n+1)-ге дейінгі n бүтін сандар берілген

Мәліметтерді шығару форматы:

Тапсырманың жауабын шығарыңыз

Мысал/ Пример

B.in B.out Комментарий
3 2 1 5 6  

 

Program esepB;

var i,n,j:integer;

t:boolean;

a:array[1..1000] of integer;

f,f1:text;

begin

assign(f,'b.in'); reset(f);

assign(f1,'b.out'); rewrite(f1);

readln(f,n);

for i:=1 to n do read(f,a[i]);

for i:=1 to n+1 do

begin

t:=false;

for j:=1 to n do

if i=a[j] then t:=true;

if not(t) then writeln(f1,i);

end;

close(f);

close(f1);

end.

 

Енгізу файлының аты: C.in

Шығару файлының аты: C.out

Есептің жауабы файлының аты: C.{c,cpp,pas}

Уақыт шектеу: 1 секунд

Жадыға шектеу: 64 мегабайт

C есебі: Әртүрлі сандар

Барлық цифрлары әртүрлі L-мен R арасындағы бүтін садардың санын санаңыз.

Мәліметтерді енгізу форматы:

Берілгеннің бірінші жолында L-мен R берілген, 1 <= L <= R <= 100000000

Мәліметтерді шығару форматы:

Тапсырманың жауабын шығарыңыз

Мысал/ Пример

C.in C.out Комментарий
11 22  

 

Program esepC;

var l,r,n:integer;

f,f1:text;

begin

assign(f,'c.in'); reset(f);

assign(f1,'c.out'); rewrite(f1);

readln(f,l,r);

n:=r-l-1;

writeln(f1,n);

close(f);

close(f1);

end.

 

 

Енгізу файлының аты: D.in

Шығару файлының аты: D.out

Есептің жауабы файлының аты: D.{c,cpp,pas}

Уақыт шектеу: 1 секунд

Жадыға шектеу: 64 мегабайт

D есебі: Рет

Сізге рет құрастыратын функция берілген.

F(1)= {1}

F(i)= {F(i-1),i,F(i-1)} ретіне тең болады. Берілген N бүтін сан үшін F(N) ретінің х орнында тұрған санды табыңыз.

Мәліметтерді енгізу форматы:

Берілгеннің бірінші жолында екі бүтін сан 1 <= N <= 1000 мен 1<=x берілген. X F(N)ретінің ұзындығынан көп болмайды.

Мәліметтерді шығару форматы:

Тапсырманың жауабын шығарыңыз

Мысал/ Пример

D.in D.out Комментарий
3 4  

 

Program esepD;

var i,n,x:integer;

s,s1,s2:string;

f,f1:text;

begin

assign(f,'d.in'); reset(f);

assign(f1,'d.out'); rewrite(f1);

readln(f,n,x);

s1:='1';

for i:=2 to n do

begin

str(i,s2);

s:=s1+s2+s1;

s1:=s;

end;

writeln(f1,s[x]);

close(f);

close(f1);

end.

 

Енгізу файлының аты: E.in

Шығару файлының аты: E.out

Есептің жауабы файлының аты: E.{c,cpp,pas}

Уақыт шектеу: 1 секунд

Жадыға шекте: 64 мегабайт

E есебі: Жаңа сан

Сізде 0 сан бар. Бұл саннан х санына келуіңіз керек. Сізге берілген сан мен екі операция берілген, бірінші операция MUL берілген санды 10-ға көбейтеді, екінші операция ADD берілген санға 1-ді қосады. х санына жету үшін 30 операциядан аспаңыз.

Мәліметтерді енгізу форматы:

Берілгеннің бірінші жолында тек 1 <= х <= 1000 саны берілген.

Мәліметтерді шығару форматы:

х санына жеткізетін операцияларды шығарыңыз.

Мысал/ Пример

E.in E.out Комментарий
ADD ADD MUL ADD ADD ADD ADD ADD ADD ADD  

 

Program esepE;

var i,n,n1,n2,n3,x:integer;

f,f1:text;

begin

assign(f,'e.in'); reset(f);

assign(f1,'e.out'); rewrite(f1);

readln(f,x);

if (x>0) and (x<10) then

for i:=1 to n do writeln(f1,'ADD');

if (x>=100) and (x<1000) then

begin

n1:=x div 100;

n2:=(x div 10) mod 10;

n3:=x mod 10;

for i:=1 to n1 do writeln(f1,'ADD');

writeln(f1,'MUL');

if n2<>0 then

for i:=1 to n2 do writeln(f1,'ADD');

writeln(f1,'MUL');

if n3<>0 then

for i:=1 to n3 do writeln(f1,'ADD')

else writeln(f1,'MUL');

end;

if (x>=10) and (x<100) then

begin

n1:=x div 10;

n2:=x mod 10;

for i:=1 to n1 do writeln(f1,'ADD');

writeln(f1,'MUL');

if n2<>0 then

for i:=1 to n2 do writeln(f1,'ADD');

end;

if x=1000 then

begin

writeln(f1,'ADD');

for i:=1 to 3 do writeln(f1,'MUL');

end;

close(f);

close(f1);

end.

 

 

Енгізу файлының аты: F.in

Шығару файлының аты: F.out

Есептің жауабы файлының аты: F.{c,cpp,pas}

Уақыт шектеу: 1 секунд

Жадыға шектеу: 64 мегабайт

F есебі: Бөлшектер

Берілген х санының барлық бөлгіштерінің жай сан болып келетіндерін табыңыз.

Мәліметтерді енгізу форматы:

Берілгеннің бірінші жолында 1 <= х <= 1000000000 саны берілген.

Мәліметтерді шығару форматы:

Тапсырманың жауабын шығарыңыз.

Мысал/ Пример

F.in F.out Комментарий
 

 

Program esepF;

var i,n,k,x:longint;

a:array[0..1000] of longint;

f,f1:text;

begin

assign(f,'f.in'); reset(f);

assign(f1,'f.out'); rewrite(f1);

readln(f,x);

n:=2; k:=0;

repeat

if x mod n=0 then

begin

x:=x div n;

k:=k+1;

a[k]:=n;

end

else

if n>=3 then n:=n+2 else n:=n+1;

until x=1;

for i:=1 to k do

if a[i]<>a[i-1] then writeln(f1,a[i]);

close(f);

close(f1);

end.

 

 

А есебі. Кассадағы кезек
Енгізу файлының аты: А.in Уақыт шектеу: 2 секунд
Шығару файлының аты: А.out Жадыға шектеу: 64 мегабайт

Сіз дүкен кассасында кезекте тұрсыз. Қазір түскі ас уақыты, сондықтан бір ғана касса жұмыс істейді. Сіз кезекте ең соңғы болып тұрсыз және қатарда сізбен қоса барлығы N адам бар.

Әр адам кассаға өз кезегі келгенде 1 (бір) минут бойы ақшасын төлейді де дүкеннен кетеді. Сонымен қатар әр М минут сайын кезекті кассир келіп өз кассасын ашады. Кезекті касса ашылған кезде осыған дейін соңғы ашылған касса кезегінің артқы жағындағы адамдардың бір бөлігі осы касса кезегіне сол ретпен ауысып келеді. Яғни, i-касса ашылған кезде (i-1)-кассаның кезегінде K адам болса, i-кассаның кезегіне ауысатын адамдардың саны (k/2)-нің бүтін бөлігіне тең. Мысалы 4-касса ашылған кезде 3-касса кезегінде 5 адам болса 2 адам, ал егер 6 адам болса 3 адам 4-кассаның кезегіне ауысады. Бір кезектен басқа кезекке ауысуға уақыт кетпейді деп есептесек болады.

Сіздің тапсырмаңыз дүкеннен неше минуттан кейін кете алатыныңызды анықтау керек.

Енгізу файлының форматы.Енгізу файлында бос орынмен бөлінген екі бүтін сан N және Mберілген. (1 ≤ N ≤ 109, 1 ≤ M ≤ 109)

Шығару файлының форматы. Шығыс файлында бір бүтін сан – неше минуттан кейін дүкенненкететініңізді шығарыңыз.

Мысалдар

A. in A. out
5 10
5 2
15 3

 

Turbo Pascal тіліндегі бағдарламасы:

Program kassa;
Var n,m,k:integer;
f1,f2:text;
Begin
Assign(f1,’A.in’);
Reset(f1);
Assign(f2,’A.out’);
Rewrite(f2);
Readln(f1,n,m);
While n>=m do
begin
n:=(n-m)div 2;
k:=k+m;
end;
writeln(f2,k+n);
close(f1); close(f2);

 

В есебі. Қала жолдарын бояу

Енгізу файлының аты: В.in Уақыт шектеу: 2 секунд
Шығару файлының аты: В.out Жадыға шектеу: 64 мегабайт

Бір қалада N жол қиылысы және осы қиылыстарды байланыстыратын N бір жақты жол бар. Және әр қиылысқанда тек бір жолмен ғана келе алатынымыз белгілі.

Қала әкімшілігі жолдарды әр түрлі түстерге бояуды шешті. Бірақ олар бірдей түсті екі жолдың бір қиылыста байланысқанын қаламады. Сонымен қатар, олар барынша аз түс қолданғылары келеді. Басқа қалалардың әкімдері де бұл қаладан артта қалмау үшін өз қалаларындағы жолдарды бояуды шешті.

Сіздің тапсырмаңыз әр берілген қалаға ең аз қанша түс керектігін анықтап беру.

Енгізу файлының форматы.Енгізу файлында бірінші жолында бір бүтін сан K (1 ≤ K ≤ 10) – қалалар саны берілген. Бұдан кейін K қаланың сипаттамасы берілген. Әр сипаттаманың бірінші жолында бір бүтін сан N (1 ≤ N ≤ 100000) – қаладағы жол қиылыстарының саны берілген. Келесі жолда аралары бос орынмен бөлінген N сан – жолдардың сипаттамасы берілген. Егер бұл жолдағы і-сан Хісаны болса, ол Хі-қиылыстан і-қиылысқа жол бар екенін білдіреді (1 ≤ Xi ≤ N, Xi ≠ i).

Шығару файлының форматы. Шығыс файлында әр қала үшін бөлек жолда бір бүтін сан – жолдарды бояу үшін кем дегенде қанша түс керектігін шығару керек.

Мысалдар

B. in B.out
2 4 4 1 2 3
5 4 1 2 3 4

 

Turbo Pascal тіліндегі бағдарламасы:

program joldi_boiau;
var n,k:integer;
f1,f2:text;
begin
assign(f1,’B.in’);
reset(f1);
assign(f2,’B.out’);
rewrite(f2);
readln(f1,k);
while k>=1 do
begin
readln(f1,n);
if n mod 2=0 then n:=n div 2
else n:=(n div 2)+1;
writeln(f2,n);
k:=k-1;
end;
close(f1); close(f2);