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

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

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

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

10.11.2012, 12:10. Просмотров 1056. Ответов 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++
Задача из книги "Програмирование - принципы и практика использования C++" C++
C++ Найти ошибку в решении "Числа - палиндрома" (задача с acmp)
C++ "Олимпиадная задачка"
Перевод из двоичной системы в десятичную, задача 2.30 "Как программировать на С++" C++
C++ Вычислить значение суммы. Задача с использованием "длинной арифметики".
Задача "Кто старше?" (подскажите где ошибка в коде) C++
Задача "Гигабашня": минимальное расстояние до этажа со счастливым номером C++
C++ Задача решена только нужна "нитра" фишки по ускорению
C++ Задача про вектор для игры "Быки и коровы"
Страуструп, "Принципы и практика использования С++": задача на нахождение моды C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
iama
1249 / 974 / 48
Регистрация: 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     Олимпиадная задача "Замок"
Ответ Создать тему
Опции темы

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