{$mode objfpc} // из модуля sysutils будем использовать функции inttostr (аналог str) и strtoint (аналог val) uses sysutils; // делимость на 3 - сумма цифр делится на 3 // равноостаточность - аналогично function test3(var s:ansistring):string; var i:integer; sum:integer; begin sum:=0; for i:=1 to length(s) do sum+=strtoint(s[i]); if sum mod 3=0 then result:='YES' else result:=inttostr(sum mod 3); end; // делимость на 4 - две последние цифры делятся на 4 // равноостаточность - аналогично function test4(var s:ansistring):string; var last2c:integer; begin if length(s)=1 then last2c:=strtoint(s[length(s)]) else last2c:=strtoint(copy(s,length(s)-1,2)); if last2c mod 4 = 0 then result:='YES' else result:=inttostr(last2c mod 4); end; // делимость на 11 - сумма чисел, составленных из пар по две цифры, начиная с единиц, делится на 11. // равноостаточность - аналогично function test11(var s:ansistring):string; var sum,i:integer; begin i:=length(s)-1; sum:=0; while i>0 do begin sum+=strtoint(copy(s,i,2)); dec(i,2); end; if i=0 then sum+=strtoint(s[1]); if sum mod 11=0 then result:='YES' else result:=inttostr(sum mod 11); end; var fin,fout:text;// исходный и результирующий файлы s:ansistring;// строка исходных данных, тип ansistring - размер строки до 2GB begin // считываем строку из input.txt assign(fin,'input.txt'); reset(fin); readln(fin,s); s:=trim(s);// удалим начальные и конечные пробелы close(fin); // сохраняем в output.txt результаты рассчетов assign(fout,'output.txt'); rewrite(fout); write(fout,test3(s),' '); write(fout,test4(s),' '); writeln(fout,test11(s)); close(fout); end.