Algorithm


Problem Name: 2 AD-HOC - beecrowd | 2415

Problem Link: https://www.beecrowd.com.br/judge/en/problems/view/2415

Consecutivos

 

Por OBI - Olimpíada Brasileira de Informática 2012 BR Brazil

Timelimit: 1

Num sorteio que distribui prêmios, um participante inicialmente sorteia um inteiro N e depois N valores. O número de pontos do participante é o tamanho da maior sequência de valores consecutivos iguais. Por exemplo, suponhamos que um participante sorteia N = 11 e, nesta ordem, os valores

30, 30, 30, 30, 40, 40, 40, 40, 40, 30, 30

Então, o participante ganha 5 pontos, correspondentes aos 5 valores 40 consecutivos. Note que o participante sorteou 6 valores iguais a 30, mas nem todos são consecutivos.

Sua tarefa é ajudar a organização do evento, escrevendo um programa que determina o número de pontos de um participante.

 

Entrada

 

A primeira linha da entrada contém um inteiro N (1 ≤ N ≤ 104), o número de valores sorteados. A segunda linha contém N valores, V1, V2, . . . , VN , (−231VI ≤ 231 − 1, para I = 1, 2, . . . , N) na ordem de sorteio, separados por um espaço em branco.

 

Saída

 

Seu programa deve imprimir apenas uma linha, contendo apenas um inteiro, indicando o número de pontos do participante.

 

 

 

Exemplos de Entrada Exemplos de Saída

11

30 30 30 40 40 40 40 40 30 30 30

5

 

Code Examples

#1 Code Example with C Programming

Code - C Programming


#include <stdio.h>

#define MAXSIZE 10500

int main (void)
{

	int num[MAXSIZE];
	int qtsPontos, atual;
	unsigned i, numValores;

	scanf("%u", &numValores);

	for (i = 0; i  <  numValores; ++i)
		scanf("%d", &num[i]);

	i = 1;
	qtsPontos = atual = 0;
	while (i  < = numValores)
	{

		if (num[i - 1] == num[i])
			atual++;
		else
			if (atual > qtsPontos)
				qtsPontos = atual, atual = 0;
			else
				atual = 0;

		++i;
	}

	printf("%u\n", qtsPontos + 1);

}
Copy The Code & Try With Live Editor

Input

x
+
cmd
11
30 30 30 40 40 40 40 40 30 30 30

Output

x
+
cmd
5

#2 Code Example with C++ Programming

Code - C++ Programming


#include <cstdio>
int main() {
    int entrada, resp = 0, temporario = 1, anterior, count = 0;
    scanf("%d", &entrada);
    while (count  <  entrada) {
        int davez;
        scanf("%d", &davez);
        if (anterior == davez) {
            temporario++;
        } else {
            if (temporario > resp) {
                resp = temporario;
            }
            temporario = 1;
        }
        anterior = davez;
        count++;
    }
    if (temporario > resp) {
        resp = temporario;
    }
    printf("%d\n", resp);
    return 0;
}
Copy The Code & Try With Live Editor

Input

x
+
cmd
11
30 30 30 40 40 40 40 40 30 30 30

Output

x
+
cmd
5
Advertisements

Demonstration


Previous
#2414 Beecrowd Online Judge Solution 2414 Desafio do Maior Número Solution in C, C++, Java, Js and Python
Next
#2416 Beecrowd Online Judge Solution 2416 Corrida Solution in C, C++, Java, Js and Python