Объясните мне как решать подобные : 2 хозяйки купили 8 л молока. у 1-ой 5 л в 6 л бидоне, у 2-ой 3 л в 5 л бидоне. они решили разделить все молоко по ровну по 4 л пользуясь еще 1 бидоном 2 л. как это сделать?
// PascalABC.NET 3.2, сборка 1353 от 27.11.2016 // Внимание! Если программа не работает, обновите версию!
function MaxSubstr(s1,s2:string):string; begin var a:=new integer[s1.Length+1,s2.Length+1]; var u:=0; var v:=0; for var i:=0 to s1.Length-1 do for var j:=0 to s2.Length-1 do if s1[i+1]=s2[j+1] then begin a[i+1,j+1]:=a[i,j]+1; if a[i+1,j+1]>a[u,v] then begin u:=i+1; v:=j+1 end end; Result:=s1.Substring(u-a[u,v],a[u,v]) end;
begin var s:='trapperkaperkatrter'; var t:='appekaperspamer'; Writeln(MaxSubstr(s,t)) end.
//Мне скучно, потому я пишу сомнительный код по примеру Эникея //PascalABC.NET 3.2 сборка 1318
Var s,t,snew,curr,add,currsave:string; i,j,flag:integer; begin readln(s); readln(t); //s=lowcase(s); t:=lowercase(t); while pos(' ',s)<>0 do begin flag:=0; curr:=copy(s,1,pos(' ',s)); currsave:=curr; if pos(t,lowercase(curr))<>0 then begin flag:=1; delete(curr,pos(t,lowercase(curr)),length(t)); for j:=1 to length(curr) do if ((curr[j]>='a') and (curr[j]<='я')) or ((curr[j]>='А') and (curr[j]<='Я')) or ((curr[j]>='a') and (curr[j]<='z')) or ((curr[j]>='A') and (curr[j]<='Z')) then flag:=0; end; if flag=1 then snew+=curr else snew+=currsave; delete(s,1,pos(' ',s)); end; curr:=s; currsave:=curr; flag:=0; if pos(t,lowercase(curr))<>0 then begin flag:=1; delete(curr,pos(t,lowercase(curr)),length(t)); for j:=1 to length(curr) do if ((curr[j]>='a') and (curr[j]<='я')) or ((curr[j]>='А') and (curr[j]<='Я')) or ((curr[j]>='a') and (curr[j]<='z')) or ((curr[j]>='A') and (curr[j]<='Z')) then flag:=0; end; if flag=1 then snew+=curr else snew+=currsave; writeln(snew); end.
Пример ввода: Который из всех котов кот съел мясо Пример вывода: Который из всех котов съел мясо