Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 8, средняя оценка - 4.63
лыс
1 / 1 / 0
Регистрация: 04.11.2012
Сообщений: 50
#1

Олимпиадная задача "Замок" - C++

10.11.2012, 12:10. Просмотров 1068. Ответов 3
Метки нет (Все метки)

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

Задача A. Замок
Замок имеет форму большого квадрата, составленного из N × N маленьких квадратиков. Внеш-
ние квадратики являются башнями, именно они играют основную роль в защите замка от неприяте-
ля. Например, если замок имеет размер 4×4, то у него 12 башен (смотрите второй рисунок, башни
на нем выделены серым цветом).
Замок охраняет K полков, которые необходимо разместить по башням. В одной башне можно
разместить несколько полков, но при этом в каждой башне должен находиться хотя бы один полк,
иначе неприятель легко захватит эту башню. Если все башни защищены, то неприятель выбирает
для атаки одну из четырех сторон замка, которую защищает наименьшее число полков (то есть
суммарное число полков во всех башнях данной стороны квадрата минимально).
Определите, как нужно разместить полки для наилучшей защиты замка.

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

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

Примеры
ввод 5 15

вывод 5

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

Добавлено через 18 часов 28 минут
Может, нужно создавать двумерный массив?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.11.2012, 12:10     Олимпиадная задача "Замок"
Посмотрите здесь:

Даны три слова - "мама", "мыла", "раму". Задача - напечатать всевозможные варианты построения слов - C++
Я записал код, однако эту часть надо автоматизировать, поможете? КОД: } #include &lt;iostream&gt; using namespace std; int main()...

Реализовать классы "Воин", "Пехотинец", "Винтовка", "Матрос", "Кортик" (наследование) - C++
Разработать программу с использованием наследования классов, реализующую классы: − воин; − пехотинец(винтовка); − матрос(кортик). ...

Создать абстрактный класс "Издание" и производные классы "Книга", "Статья", "Электронный ресурс" - C++
1. Создать абстрактный класс Издание с методами, позволяющими вывести на экран информацию об издании, а также определить является ли данное...

Создать класс "Вентилятор" содержащий в себе классы: "Двигатель", "Контроллер", "Пульт управления" - C++
Помогите с кодом написания задачи, не понимаю как написать классы в классе. Нужно создать класс &quot;вентилятор&quot; содержащий в себе классы:...

Создать класс "Книга" с полями "название книги", "количество страниц", "год издания" - C++
Создать класс Книга поля: название книги,количество страниц,год издания методы: вычислить сколько лет книге и количество дней прошедших...

Определить тип данных "Запись", имеющий поля "Фамилия", "Пол", "Зарплата" - C++
определить тип данных запись имеющий поля фамилия пол зарплата. определить массив из 10 записей. в программе ввести в массив данные и...

"Олимпиадная задачка" - C++
Напишите программу, которая в последовательности натуральных чисел определяет минимальное число, оканчивающееся на 4. Программа...

по строкам.замените в слове сочетание "му" на "а" , а букву "ы" на "ца". очень нужно - C++
замените в слове сочетание &quot;му&quot; на &quot;а&quot; , а букву &quot;ы&quot; на &quot;ца&quot;. очень нужно Добавлено через 21 час 4 минуты неужели никто не знает...

Структура «Преподаватель» с полями "ФИО", "стаж", "категория", "нагрузка" - C++
Функция - расчёт зарплаты по нагрузке и оплате часа для определенной категории. Категория Оплата часа Вторая 150 Первая 200 ...

Создать иерархию классов "Фирма", "Бухгалтер", "Сотрудник", "Зарплата" - C++
Само по себе понятие &quot;зарплата&quot; не особенно конкретное: оно включает и почасовую, и ставочную зарплату, и комиссионные, и процент с продаж....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
iama
1249 / 974 / 49
Регистрация: 30.07.2010
Сообщений: 5,297
10.11.2012, 12:56     Олимпиадная задача "Замок" #2
Идеи решения у тебя есть?


Не по теме:

Цитата Сообщение от лыс Посмотреть сообщение
Может, нужно создавать двумерный массив?
Кошмар...

alex_289
3 / 3 / 0
Регистрация: 27.05.2012
Сообщений: 12
10.11.2012, 14:51     Олимпиадная задача "Замок" #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <iostream>
#include <math.h>
using namespace std;
 
int main()
{
    int N=0;
    int K=0;
    int T=0;
    int tower=0;
     cout<<"enter size of tower[2-100]: ";
     cin>>N;
     cout<<"enter size of army[0-100]: ";
     cin>>K;
     tower=pow(N,2)-pow((N-2),2);
     if(tower>K)
        cout<<"army is to small"<<endl;
    else
     {
     T=(K/tower)*N;
     cout<<"Minimal: "<<T;
     }
    return 0;
}
лыс
1 / 1 / 0
Регистрация: 04.11.2012
Сообщений: 50
10.11.2012, 15:11  [ТС]     Олимпиадная задача "Замок" #4
Спасибо большое, очень помогли.
Yandex
Объявления
10.11.2012, 15:11     Олимпиадная задача "Замок"
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru