Решение задачи Ежеминутные автобусы с Acmp

Без пояснения   Просмотров: 23


На автобусную остановку каждую минуту подходит автобус одного из маршрутов. Диспетчерская служба собрала данные за N минут – номера маршрутов каждого автобуса.

Требуется определить максимально возможное время ожидания для пассажира, желающего уехать определенным маршрутом. Т.е. в данной последовательности номеров маршрутов нужно найти два самых удаленных числа, равных между собой, между которыми нет равных им. Например, для последовательности 2, 11, 2, 2, 25, 11, 25, 11 максимальное время ожидания равно 4 (для маршрута номер 11).

Код

#include <bits/stdc++.h>
 
using namespace std;
 
int main()
{
    int n, jj, s = 0;
    scanf("%d", &n);
    bool b = false;
    int a[n];
    for(int i = 0; i < n; ++i)
         scanf("%d", &a[i]);
    for(int i = 0; i < n; ++i){
        b = false;
        for(int j = i + 1; j < n; ++j)
            if(a[i] == a[j]){
                jj = j;
                b = true;
                break;
            }
        if(b)
            if(jj - i > s)
                s = jj - i;
    }
    cout << s;
    return 0;
}

         

Администратор Photo Автор: Администратор



Комментарии

Чтобы написать комментарии вам нужно войти в систему или зарегистрироваться