М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
Komarova24
Komarova24
08.04.2022 23:43 •  Информатика

Замок

Замок имеет форму большого квадрата, составленного из N × N
маленьких квадратиков. Внешние квадратики являются башнями, именно они играют основную роль в защите замка от неприятеля. Например, если замок имеет размер 4 × 4, то у него 12

башен (смотрите второй рисунок, башни на нем выделены серым цветом).

Замок охраняют K

полков, которые необходимо разместить по башням. В одной башне можно разместить несколько полков, но при этом в каждой башне должен находиться хотя бы один полк, иначе неприятель легко захватит эту башню. Если все башни защищены, то неприятель выбирает для атаки одну из четырех сторон замка, которую защищает наименьшее число полков (то есть суммарное число полков во всех башнях данной стороны квадрата минимально).

Определите, как нужно разместить полки для наилучшей защиты замка.

Входные данные

Первая строка входных данных содержит число N
— размер замка (2 ≤ N ≤ 100). Вторая строка входных данных содержит число K — количество полков, охраняющих замок (0 ≤ K ≤ 100

).

Выходные данные

Выведите единственное число — количество полков на наименее укрепленной стороне замка при наилучшем размещении полков. Если имеющихся полков недостаточно для защиты всех башен, выведите число 0

.

Примечание

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

Во втором примере можно расположить полки так, что каждую сторону будет защищать 5 полков. Защитить каждую сторону не менее, чем шестью полками не удастся.

👇
Ответ:
Nastromanova
Nastromanova
08.04.2022

n = int(input())

kol = n ** 2 - (n - 2) ** 2

k = int(input())

if kol > k:

   print(0)

elif kol == k:

   print(n)

else:

   k -= kol

   res = n + k // 2

   print(res)

Объяснение:

4,8(96 оценок)
Открыть все ответы
Ответ:
FoxDi13
FoxDi13
08.04.2022
#include <iostream>
#include <iomanip>
using namespace std;

int main() {
    int n,k,m;
    cout<<"N = ";  cin>>n;
    cout<<endl;
    if (n%2!=0) {
       cout<<"недопустимое значение N: "<<n<<endl;
       return(1);
    }
    cout<<setw(12)<<"gooses"<<setw(10)<<"rabbits"<<endl;
    m=n/4;  k=(n-m*4)/2;
    while (m>=0)  {
       if (k>0) cout<<setw(10)<<k;
       else cout<<setw(10)<<"--";    
       if (m>0) cout<<setw(10)<<m;
       else cout<<setw(10)<<"--";
       cout<<endl;
       m--;  k+=2;
    }
    system("pause");
    return(0);
}
4,7(2 оценок)
Ответ:
sungatulin22
sungatulin22
08.04.2022
//PascalABC.NET 3.2 сборка 1318

//1

Var
  s,maxs:string;
  i,max,j,len:integer;
begin
max:=-1;
readln(s);
var ars:=s.Split;
for i:=0 to ars.length-1 do
begin
len:=0;
  for j:=1 to ars[i].length do
    if (lowcase(ars[i][j])>='a') and (lowcase(ars[i][j])<='z') then
        inc(len);
if ars[i].length=max then
    maxs+=chr(13)+ars[i]+' '+len;
if ars[i].length>max then
    begin
      maxs:=ars[i]+' '+len;
      max:=ars[i].length;
    end;
end;
write(maxs);
end.

Пример ввода:
Steins;Gate is fine VN, 12345678910
Пример вывода:
Steins;Gate 10
12345678910 0

//2

Var
  s:string;
  i,counter:integer;
begin
readln(s);
for i:=1 to length(s) do
  if (s[i]=upcase(s[i])) and (lowcase(s[i])>='a') and (lowcase(s[i])<='z') then
 inc(counter);
writeln(counter);
end.

Пример ввода:
SiMple TeXt
Пример вывода:
4
4,6(47 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ