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

Аншлаг, аншлаг! (ошибка в коде) - C++

Восстановить пароль Регистрация
 
diana92
4 / 4 / 1
Регистрация: 25.10.2009
Сообщений: 36
14.05.2010, 23:22     Аншлаг, аншлаг! (ошибка в коде) #1
не понимаю почему в тимусе все время выдает ошибку. пожалуйста, подскажите

1725. Аншлаг, аншлаг!
Ограничение времени: 0.5 секунды
Ограничение памяти: 64 МБ

Осенью в одном из популярных кинотеатров Екатеринбурга все сеансы проходят с аншлагом, поскольку студентам нравится вместо посещения лекций проводить время в уютном кресле за просмотром какого-нибудь фильма. К сожалению, расстояние между рядами в кинозале маленькое, и зрители, пробираясь перед началом фильма к своим местам, вынуждены спотыкаться о ноги уже сидящих. Заходя в зал, зритель думает, с какой стороны ряда он будет пробираться к своему месту (с левой или с правой), и выбирает сторону так, чтобы споткнуться о меньшее число людей. В случае равенства зритель выбирает ту сторону, к которой его место ближе.
Студент философского факультета Вася, ярый любитель кино и столь же ярый ненавистник математики, первым купил билет на очередную премьеру. Когда Вася вошёл в зал и сел на своё место, он увидел, что все остальные кресла в его ряду ещё пустуют. Вася точно знал, что к началу сеанса зал заполнится до отказа, а это значило, что с минуты на минуту о его ноги начнут спотыкаться другие кинолюбители, пробирающиеся к своим местам. Несмотря на всю свою нелюбовь к математике, Вася мгновенно оценил, какое максимальное количество человек споткнётся о его ноги, прежде чем все зрители займут свои места. А вы сможете?


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# include <iostream>
using namespace std;
int main ()
{
 int n,k,r,x;
 cin>>n;
 cin>>k;
 r=n/2;
 if(k==r)
 {
     cout<<"0"<<endl;
     return 0;
 }
 if(k<r)
     x=r-k;
 else
     x=k-r-1;
 cout<<x<<endl;
 return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.05.2010, 23:22     Аншлаг, аншлаг! (ошибка в коде)
Посмотрите здесь:

Ошибка в коде? C++
Ошибка в коде C++
C++ Ошибка в коде
C++ ошибка в коде
C++ ошибка в коде ?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Psixodelik
 Аватар для Psixodelik
38 / 37 / 2
Регистрация: 27.11.2009
Сообщений: 93
14.05.2010, 23:28     Аншлаг, аншлаг! (ошибка в коде) #2
Ну ты бы хоть коменты поставила бы А то незнаю как остальным, но мне значения переменных не совсем понятны
diana92
4 / 4 / 1
Регистрация: 25.10.2009
Сообщений: 36
14.05.2010, 23:39  [ТС]     Аншлаг, аншлаг! (ошибка в коде) #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# include <iostream>
using namespace std;
int main ()
{
 int n,k,r,x; //n-kol-vo mest v ryadu, k- mesto, gde sidit Vasya
 cin>>n;
 cin>>k;
 r=n/2;       //kol-vo mest rydu delyu popolam.
 if(k==r)     // esli Vasya sidit po seredine, to otvet 0
 {
     cout<<"0"<<endl;
     return 0;
 }
 if(k<r)      //esli Vasya sidit po levuyu storonu ot seredini, to iz polovini kol-vo mest vichitam pervie k mest
     x=r-k;
 else
     x=k-r-1; 
 cout<<x<<endl;
 return 0;
}
вот и комменты
Psixodelik
 Аватар для Psixodelik
38 / 37 / 2
Регистрация: 27.11.2009
Сообщений: 93
14.05.2010, 23:51     Аншлаг, аншлаг! (ошибка в коде) #4
хмммм....по самому коду ошибок нет...считает вроде правильно, да и по формулам на взгляд тоже правильно....не понимаю причин не спокойствия....всё таки хотелось бы причины негодования поподробнее
diana92
4 / 4 / 1
Регистрация: 25.10.2009
Сообщений: 36
15.05.2010, 00:02  [ТС]     Аншлаг, аншлаг! (ошибка в коде) #5
ошибку выдает на 5 тесте, то есть для какой-то комбинации решение не правильное

Добавлено через 8 минут
насколько я поняла зритель должен выбрать такой путь, чтоб споткнуться о меньшее кол-во людей, но как это реализовать ((
Psixodelik
 Аватар для Psixodelik
38 / 37 / 2
Регистрация: 27.11.2009
Сообщений: 93
15.05.2010, 00:05     Аншлаг, аншлаг! (ошибка в коде) #6
Хммм...пока курил додумал одну вещь))) Может поможет..а может нет...значит так, суть такова: возьмём к примеру тот факт что в зале 20 кресел, Вася сидит на 10, по формулам получится что он сидит ровно в центре, только это не так, так как тогда с лева остаётся 9 свободных кресел, а с права 10...что бы Вася сидел ровно по центру нужно 21 кресло, тогда ему по ногам точно никто не пройдёт
diana92
4 / 4 / 1
Регистрация: 25.10.2009
Сообщений: 36
15.05.2010, 00:07  [ТС]     Аншлаг, аншлаг! (ошибка в коде) #7
то есть можно проверить, если кол-во мест нечетное -решение правильно, если нет - прибавить 1? )
Psixodelik
 Аватар для Psixodelik
38 / 37 / 2
Регистрация: 27.11.2009
Сообщений: 93
15.05.2010, 00:12     Аншлаг, аншлаг! (ошибка в коде) #8
Зачем Просто в формулу с поиком r добавь +1, т.е. так r=n/2 + 1;
Просто с чётным колличеством мест, ты не сядешь в центр)))

Просто это для центра важно...может и в этом только ошибка была...хз...а насчёт выбирания путей это перебор, мы же не знаем как будут садиться первые зрители)))
diana92
4 / 4 / 1
Регистрация: 25.10.2009
Сообщений: 36
15.05.2010, 00:18  [ТС]     Аншлаг, аншлаг! (ошибка в коде) #9
так вообще на 1-ом тесте ошибку выдало я еще одну проверку добавила,чтоб k было меньше n, но не помогло (
Psixodelik
 Аватар для Psixodelik
38 / 37 / 2
Регистрация: 27.11.2009
Сообщений: 93
15.05.2010, 00:20     Аншлаг, аншлаг! (ошибка в коде) #10
хмммм...а случайно комбинации не пишутся, которые проверяются?)))
diana92
4 / 4 / 1
Регистрация: 25.10.2009
Сообщений: 36
15.05.2010, 00:23  [ТС]     Аншлаг, аншлаг! (ошибка в коде) #11
если бы
Psixodelik
 Аватар для Psixodelik
38 / 37 / 2
Регистрация: 27.11.2009
Сообщений: 93
15.05.2010, 00:34     Аншлаг, аншлаг! (ошибка в коде) #12
блин...странно...ещё раз просматривал исходный вариант...с точки зрения математики всё верно(даже не листочке графически проверял ) Полюбому просто 5-ый тест с подковыркой...там просто надо знать значения)))) Нас просто препод тоже любит валить значениями при которых ничего не работает))) Что ж...думаем дальше

Добавлено через 4 минуты
Зашёл на сайт, там ещё есть добавление, что (1 ≤ k ≤ n ≤ 50; n чётно).....попробуй учесть это)))
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.05.2010, 00:38     Аншлаг, аншлаг! (ошибка в коде)
Еще ссылки по теме:

C++ Ошибка в коде
C++ Ошибка в коде
C++ Ошибка в коде

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

Или воспользуйтесь поиском по форуму:
diana92
4 / 4 / 1
Регистрация: 25.10.2009
Сообщений: 36
15.05.2010, 00:38  [ТС]     Аншлаг, аншлаг! (ошибка в коде) #13
в обсуждении этой задачи у многих проблема с 5-ым тестом, один написал, что
Зритель выбирает сторону так, чтобы споткнуться о меньшее число людей.
Это не всегда наикратчайший путь.
и что проблема в этом, но я не понимаю ведь не мы же решаем куда сядут остальные..

Добавлено через 1 минуту
я это учитываю , вот новый код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# include <iostream>
using namespace std;
int main ()
{
 int n,k,r,x; 
 cin>>n;
 cin>>k;
 if(k<=0 && n>=50 && k>n)
     return 0;
 r=n/2;       
 if(k==r)     
 {
     cout<<"0"<<endl;
     return 0;
 }
 if(k<r)      
     x=r-k;
 else
     x=k-r-1; 
 cout<<x<<endl;
 return 0;
}
все равно ошибка на 5 тесте
Yandex
Объявления
15.05.2010, 00:38     Аншлаг, аншлаг! (ошибка в коде)
Ответ Создать тему
Опции темы

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