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

Обьясните как работает программа условие и код есть - C++

Восстановить пароль Регистрация
 
max0072233
Сообщений: n/a
16.01.2011, 16:03     Обьясните как работает программа условие и код есть #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


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

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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
#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;
 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.01.2011, 16:03     Обьясните как работает программа условие и код есть
Посмотрите здесь:

обьясните пожалуйта как работает программа C++
Как записать правильно? Программа работает но код наверно не верен. C++
обьясните условие C++
метод гауса..обьясните как работает программа C++
C++ Плз обьясните неучу как выполнить в VC++ код на asme.
Обьясните условие задачи C++
C++ Есть код программы на вычисление количества слов, как изменить условие?
C++ Код, который проверяет есть ли в регистре идентификатор GUID - как он работает?

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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