Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Технологии > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail


Ответ
 
Опции темы
Старый 14.10.2018, 00:03   #1
Gud
Новичок
 
Регистрация: 14.10.2018
Сообщений: 3
Репутация: 10
По умолчанию оптимизировать задачу на с++

На очередном уроке учитель по физкультуре решил устроить для школьников соревнования по броскам мяча в баскетбольную корзину. При проведении соревнования было замечено одно интересное явление: на очередном этапе соревнований успешные и неуспешные попытки бросков чередовались: успешный, неуспешный, успешный, неуспешный и т.д. (первый был успешным). Школьникам на каждом этапе разрешалась только одна попытка. Тот, кто попадал в корзину, переходил в следующий тур (этап), а тот, кто делал неудачную попытку – выбывал из соревнований. Таким образом, первым выбывал всегда школьник с номером 2, а последним – победитель с номером 1.

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

Формат ввода
В единственной строке входного файла INPUT.TXT содержатся два натуральных числа: общее число учеников N и порядковый номер ученика в стартовом списке M. Числа разделены пробелом (1 ≤ M,N ≤ 109).

Формат вывода
В единственную строку выходного файла OUTPUT.TXT нужно вывести каким по счету школьник M выбыл из соревнований. Если это победитель состязания, то выводится число N.


моя программа работает, но она не проходит тест по времени(ограничение времени 0,1с)






Код:

#include<iostream>

using namespace std;

int main() {

	int n, m, a, b, i, ch,per,k;
	cin >> n >> m;

	ch = 0;
	per = 1;

	k = 0;
	
	a = 0;
	if (m == 1) cout << n; else {
		while (a != 1) {
			

			for (i = 1; i <= n; i = i + per) {

				k = k + 1;
				if (k % 2 == 0) ch = ch + 1;
				/*cout << ch;*/

				if ((m == i) && (k % 2 == 0)) { a = 1; break; }
			}

			per = per * 2;
			k = 0;

		}


		cout << ch;
	}


	system("pause");
	return 0;
}

Gud вне форума   Ответить с цитированием
Старый 14.10.2018, 00:37   #2
Black Fregat
Программист
Профессионал
 
Аватар для Black Fregat
 
Регистрация: 23.06.2009
Сообщений: 1,011
Репутация: 675
По умолчанию

Цитата:
Сообщение от Gud Посмотреть сообщение
моя программа работает, но она не проходит тест по времени
Тут обычно не "оптимизировать" надо, а алгоритм менять.
Ничего лучше решения "в лоб" в голову не приходит?
Black Fregat вне форума   Ответить с цитированием
Старый 14.10.2018, 00:52   #3
Gud
Новичок
 
Регистрация: 14.10.2018
Сообщений: 3
Репутация: 10
По умолчанию

я весь день над ней бьюсь, мне и это решение с трудом далось)
Gud вне форума   Ответить с цитированием
Старый 14.10.2018, 01:02   #4
Gud
Новичок
 
Регистрация: 14.10.2018
Сообщений: 3
Репутация: 10
По умолчанию

Цитата:
Сообщение от Black Fregat Посмотреть сообщение
Ничего лучше решения "в лоб" в голову не приходит?
нет

Последний раз редактировалось Gud; 14.10.2018 в 01:06.
Gud вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подскажите на С#, как оптимизировать/переписать эту задачу Aleksandr H. Помощь студентам 3 12.11.2016 15:17
Оптимизировать задачу на графы Dmitry_DM Помощь студентам 15 07.04.2015 11:39
Оптимизировать код по IE 7 nibufep JavaScript, Ajax 1 08.03.2015 14:31
Необходимо оптимизировать задачу паскаль anton.dasuik Помощь студентам 2 28.02.2013 20:28
Оптимизировать код. Манжосов Денис :) Общие вопросы Delphi 1 20.10.2008 19:06


00:32.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru