Plataforma: URI (BEECROWD)
Problema: 2718
Enunciado:
Giovanna adora o Natal. As festas, a família, decorações natalinas e principalmente os famosos pisca pisca led. Porém, esse ano a pequena Gio ficou triste ao perceber que seu jogo de luzes está quebrado. Algumas luzes ainda funcionam, outras não. Giovanna quer, obviamente, consertar seu objeto preferido mas não tem lâmpadas o suficiente pra substituir todas as queimadas então resolveu fazer o seguinte: dividir o pisca pisca em grupos ordenados de 50 lâmpadas e em cada grupo só consertar a maior quantidade de lâmpadas consecutivas queimadas.
Por serem muitos grupos, a tarefa se tornou tediosa e para tentar remediar isso, Giovanna, observando a semelhança dos grupos com representação binária de números quando imaginava lâmpadas queimadas como 1's e lâmpadas funcionais como 0's, decidiu pensar neles efetivamente como números e escreveu as representações decimais desses binários então tentou descobrir a quantidade de lâmpadas a serem trocadas a partir dessas anotações.
Sua tarefa é, dado as anotações de Gio, diga quantas lâmpadas serão trocadas em cada grupo.
Linguagens: C e C++
Solução:
Código em C:
#include <stdio.h> int main() { long long n, v, acum, maior, resto; scanf("%lld", &n); while (n--) { scanf("%lld", &v); acum = 0; maior = 0; while (v) { resto = v % 2; if (resto) { acum++; if (acum > maior) maior = acum; } else acum = 0; v -= v/2 + resto; } printf("%lld\n", maior); } return 0; }
#include <iostream> using namespace std; int main() { long long n, v, acum, maior, resto; cin >> n; while (n--) { cin >> v; acum = 0; maior = 0; while (v) { resto = v % 2; if (resto) { acum++; if (acum > maior) maior = acum; } else acum = 0; v -= v/2 + resto; } cout << maior << endl; } return 0; }