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 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 , (−231 ≤ VI ≤ 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
30 30 30 40 40 40 40 40 30 30 30
Output
#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
30 30 30 40 40 40 40 40 30 30 30
Output