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

Если дана плитка 3х2, как ее можно разделить на 4 ровные части? - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 5.00
Ann Joker
 Аватар для Ann Joker
3 / 3 / 1
Регистрация: 05.10.2011
Сообщений: 86
18.10.2011, 20:46     Если дана плитка 3х2, как ее можно разделить на 4 ровные части? #1
You are given n*m sized chocolate. Determine is it possible to brake off from chocolate k parts if you are allowed to make one break in straight line between the segments. Input contains three number n, m, k (k not equal to n*m). It is guaranteed that the number of segments in chocolate does not exceed 30000.
Честно говоря, не поняла само условие.
Если дана плитка 3х2, как ее можно разделить на 4 ровные части?

Examples
Input Output
3 2 4 YES
3 2 1 NO
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
using namespace std;
int main(){
    int m,n,k;
    cin>>n>>m;
    if((n*m)%(k-1)==0)
        cout<<”YES”;
    else cout<<”NO”;
return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
aeshes
 Аватар для aeshes
437 / 200 / 13
Регистрация: 07.10.2011
Сообщений: 462
18.10.2011, 21:39     Если дана плитка 3х2, как ее можно разделить на 4 ровные части? #2
Ann Joker, здесь не про 4 части. Вопрос в задаче следующий. Дана плитка шоколада n*m. Можно ли отделить от нее k "долек", если вы можете сделать только один прямолинейный разлом?

От плитки 3*2 можно отделить 4 дольки за 1 раз:
* * | *
* * | *
(* - дольки, | - линия разлома)

А вот отделить от нее 1 дольку нельзя, потому что придется делать два разлома под углом 90 градусов
Ann Joker
 Аватар для Ann Joker
3 / 3 / 1
Регистрация: 05.10.2011
Сообщений: 86
18.10.2011, 21:56  [ТС]     Если дана плитка 3х2, как ее можно разделить на 4 ровные части? #3
ааа, блин, я тормоз..

получается, если число ломтиков делится на ширину или длину шоколад без остатка, то можно.
?
aeshes
 Аватар для aeshes
437 / 200 / 13
Регистрация: 07.10.2011
Сообщений: 462
18.10.2011, 22:07     Если дана плитка 3х2, как ее можно разделить на 4 ровные части? #4
Ann Joker, там более сложное условие
Понятно, что если длина или ширина плитки делится на количество долек, то их можно отделить. Но, например, том же примере про плитку 3*2 и 4 дольки ни длина, ни ширина не делятся на кол-во долек, и наоборот.
Что касается приведенного вами в первом посте кода, то он работает неправильно
Рассмотрим пример: плитка 3*4, отделить 9 долек (это возможно)
* * * | *
* * * | *
* * * | *
Однако по условию (n*m)%(k-1)==0
(3*4)%(9-1)=12%8=4 !=0, напечатает NO

Кроме того, нет инициализации переменной k. И сомнительна работа условия при k=1 (остаток от деления на 0 будем искать, получается)
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
18.10.2011, 22:12     Если дана плитка 3х2, как ее можно разделить на 4 ровные части? #5
Я думаю так.
((Если k делится нацело на n, и k / n < m) или (если k делится нацело на m, и k / m < n))
Ann Joker
 Аватар для Ann Joker
3 / 3 / 1
Регистрация: 05.10.2011
Сообщений: 86
18.10.2011, 22:33  [ТС]     Если дана плитка 3х2, как ее можно разделить на 4 ровные части? #6
а что если
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
#include <math.h>
using namespace std;
int main(){
    int m,n,k;
    cin>>n>>m;
    if((n*m)-k==n || (n*m)-k==m)
        cout<<"YES";
    else cout<<"NO";
return 0;
}
Добавлено через 11 минут
The chips were placed in each border cage of square board. Can we place exactly k chips? For example if it is 2 x 2 sized board then there is 4 chips or if it is 4 x 4 sized board then there is 20 chips.

можете эту еще объяснить..
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
18.10.2011, 22:36     Если дана плитка 3х2, как ее можно разделить на 4 ровные части? #7
Плитка 3*4. Отломите 3 дольки.
Следуя вашей программе
if((12 - 3 == 3) || (12 - 3 == 4))
false.
Overdoser
7 / 7 / 1
Регистрация: 18.10.2011
Сообщений: 40
18.10.2011, 22:47     Если дана плитка 3х2, как ее можно разделить на 4 ровные части? #8
На основе всех примеров в голову пришло такое условие:если количество необходимых долек делится нацело на один из параметров плитки)При этом смотреть, чтобы k<m*n и чтобы частное k и одного из параметров не было больше другого параметра плитки.
Ann Joker
 Аватар для Ann Joker
3 / 3 / 1
Регистрация: 05.10.2011
Сообщений: 86
18.10.2011, 22:49  [ТС]     Если дана плитка 3х2, как ее можно разделить на 4 ровные части? #9
вот точно, это я и хотела выразить!)
спасибо_))
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.10.2011, 22:52     Если дана плитка 3х2, как ее можно разделить на 4 ровные части?
Еще ссылки по теме:

Разделить строки на мелкие части C++
Разделить строку на две части C++
Как разделить программу на две части? C++

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

Или воспользуйтесь поиском по форуму:
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
18.10.2011, 22:52     Если дана плитка 3х2, как ее можно разделить на 4 ровные части? #10
Цитата Сообщение от Overdoser Посмотреть сообщение
На основе всех примеров в голову пришло такое условие:если количество необходимых долек делится нацело на один из параметров плитки)
Пост #5. Еще необходимо условие о том, что другая сторона обязательно меньше частного. Пример: плитка 2*3 и 9 долек.

Добавлено через 2 минуты
Пардон. Отписывался по первому варианту поста. И тем не менее, я все это написал 5 постов назад
Yandex
Объявления
18.10.2011, 22:52     Если дана плитка 3х2, как ее можно разделить на 4 ровные части?
Ответ Создать тему
Опции темы

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