Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.01.2011, 16:09   #1
max0072233
Новичок
Джуниор
 
Регистрация: 16.01.2011
Сообщений: 1
Восклицание Обьясните как работает программа условие и код есть

Помогите пожалуйста. Я начинающий программист. Вот есть программа вот есть условие. Работает хорошо. Только что делает каждая процедура не понимаю Объясните пожалуйста поэтапно (по строкам, по предложениям, как удобно) как работает и что делает программа.
Заранее большое спасибо.

Взято отсюда http://acm.timus.ru/problem.aspx?space=1&num=1794.

1794. Шедевры мировой архитектуры
Ограничение времени: 1.0 секунды
Ограничение памяти: 64 МБ
Мария Ивановна оповестила всех учеников своего пятого класса, что через месяц она проведёт урок на тему «Шедевры мировой архитектуры». К этому уроку каждый из ребят должен был подготовить небольшой доклад об одном из знаменитых архитектурных сооружений. Как обычно, отличники подготовили свой доклад заранее, а двоечники начали готовиться к уроку только за несколько минут до него.
Начался урок. По сложившейся традиции проведения подобных уроков, дети садятся в круг и выступают один за другим по часовой стрелке. Отличники любят выступать одними из первых, в то время как двоечники хотят отвечать как можно позже, пытаясь доделать задание прямо во время урока.
Мария Ивановна спросила у каждого ученика, каким по счёту он хочет выступать. Теперь ей предстоит решить, кто должен выступить первым, чтобы как можно больше детей выступили по счёту ровно теми, какими они хотят.
Исходные данные
В первой строке записано целое число n — количество учеников в классе (2 ≤ n ≤ 105). Мария Ивановна занумеровала всех детей числами от 1 до n в порядке по часовой стрелке. Во второй строке через пробел записаны числа a1, …, an (1 ≤ ai ≤ n), где ai — номер, названный i-м учеником.
Результат
Выведите номер ученика, которого Мария Ивановна спросит первым. Если возможно несколько вариантов ответа, выведите любой.

Примеры
исходные данные

4
4 1 2 3


результат

2

исходные данные

3
1 1 1

результат

3


Код программы:



Код:
#include <iostream>

using namespace std;

long int N;

long int *_prav;

long int *_lev;

int main()

{

cin>>N;

_prav = new long int[2*N];

_lev = new long int[N];

for (long int q=0; q<N; q++) cin>>_prav[q];

for (long int q=0; q<N; q++)

{

_lev[q]=_prav[q];

_prav[q]-=q+1;

_prav[q+N]=_prav[q]-N;

}

long int _max=_prav[0];

long int _pos=1;

long int _count=1;

for (long int w=0; w<N; w++)

{

if (_prav[w]>-N)

{

_count=1;

for (long int q=w+1; q<2*N; q++)

{

if (_prav[q]==_prav[w])

{

_prav[q]=-N;

_count++;

}

}

_prav[w]=_count;

if (w==0) _max=_prav[w];

else if (_prav[w]>_max)

{

_max=_prav[w];

_pos=w-(_lev[w])+2;

}

}

}

if (_pos<=0) _pos+=N;

cout<<_pos<<endl;

getchar();getchar(); 

return 0;

}
max0072233 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Есть код но почему то не правильно работает -ushёl- Помощь студентам 1 10.05.2010 22:27
С#.NET. Маленькая проблемка - условие не работает так , как надо Ksy Общие вопросы .NET 11 24.12.2009 21:07
(паскаль) Обработка кв. матрицы. Программа есть. Не корректно работает функция SUM.. aslanbek999 Помощь студентам 3 02.06.2009 19:51
Структыры в С++ в борланд си, программа есть, но не работает... Помогите с ошибкой... Катюшенька Помощь студентам 2 29.03.2009 14:12
Программа ведёт учёт Электричества и Газа, постоянно работает, есть экспорт в Excel Gennadij2 Microsoft Office Excel 3 24.03.2009 12:41