• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Chess.in

  • Автор темы KoKoS
  • Дата начала
K

KoKoS

Нужно найти максимальное количество слонов, которых можно разместить на шахматной доске размерности NXN так, что они не угрожали друг другу?
Формат входных данных:
Во входном файле chess.in содержится единственное целое число N(0<N<10^50) – размеры шахматной доски.
Формат выходных данных:
В исходный файл chess.out вывести одно число – максимальное количество слонов.
Chess.in:3
Chess.out:4
Хотя бы подскажыте мне идею задачи...
С НОВЫМ ГОДОМ!
 
A

Azrael

Для: KoKoS
похоже, что по формуле 2(N-1), типа для 3x3:
xxx
000
0x0
для 4х4:
xxxx
0000
0000
0xx0
для 5х5:
xxxxx
00000
00000
00000
0xxx0
 
K

KoKoS

Для: Azrael
А реализовать можешь?
А то я пробую ничего не выходит....
 
A

Azrael

Для: KoKoS
Создаешь новое приложение, удаляешь юнит, в коде самого проекта пишешь:
Код:
program chess;
uses SysUtils;
var inpF, outpF: TextFile;
stNum: String;
begin
if FileExists('chess.in') then
begin
try
AssignFile(inpF, 'chess.in');
AssignFile(outpF, 'chess.out');
Reset(inpF);
Rewrite(outpF);
Readln(inpF, stNum);
Writeln(outpF, IntToStr(2*(StrToInt(stNum)-1)));
finally
CloseFile(inpF);
CloseFile(outpF);
end;
end;
end.

сохраняешь как chess.dpr, в каталог складываешь chess.in, содержащий N.
Должно работать, я вот только не уверен насчет РЕАЛЬНО больших N... давненько в делфе не работал.
 
A

Azrael

Для: KoKoS
не знаю, как Вы такого добились. В chess.out у меня нормально складывает чиселки...
А с большими числами, где кол-во разрядов больше 10, нужно, наверное, запрограммировать последовательность действий при вычитании -1 и умножения на 2 столбиком.

Попробую прикрепить проект, только на вири проверь :)
 

Вложения

  • chessinout.zip
    24,6 КБ · Просмотры: 122
A

Azrael

Для: KoKoS
Пожалуйста, можешь даже "+" тыкнуть ;)
А вообще код не совсем подходит под задачу: он не "схватит" N~10^50, т.е. 50-ти разрядное 10-тичное число... Тут, возможно, стОит написать функции умножения на 2 и вычитания 1-цы, которая будет принимать число в строковом формате, щоб работать с большими числами без потерь точности.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!