Algorithm
Problem Name: 2 AD-HOC - beecrowd | 2427
Problem Link: https://www.beecrowd.com.br/judge/en/problems/view/2427
Chocolate
Por OBI - Olimpíada Brasileira de Informática 2012 Brazil
Timelimit: 1
Por lei, na Nlogônia todas as barras de chocolate são quadradas. Anamaria tem uma barra quadrada de chocolate de lado L, que ela quer compartilhar com alguns colegas da obi. Mas ela é uma boa cidadã e cumpre a lei. Então, ela divide a barra em quatro pedaços quadrados, de lado L/2. Depois, ela repete esse procedimento com cada pedaço gerado, sucessivamente, enquanto o lado for maior do que, ou igual a 2cm. Você deve escrever um programa que, dado o lado L da barra inicial, em centímetros, determina quantos pedaços haverá ao final do processo.
Entrada
A entrada consiste de uma linha, com um único inteiro, L (2 ≤ L ≤ 104), o número de centímetros do lado do quadrado.
Saída
Se programa deve imprimir uma única linha, contendo um único inteiro, igual ao número total de pedaços obtidos pela Anamaria.
Exemplos de Entrada | Exemplos de Saída |
4 |
16 |
Code Examples
#1 Code Example with C++ Programming
Code -
C++ Programming
#include <cstdio>
#include <queue>
using namespace std;
int main() {
int resposta = 0, n;
scanf("%d", &n);
queue < int> simulacao;
simulacao.push(n);
while (!simulacao.empty()) {
int davez = simulacao.front();
simulacao.pop();
// printf("%d\n",davez);
if (davez >= 2) {
for (int i = 1; i < = 4; i++) simulacao.push(davez / 2);
} else {
resposta++;
}
}
printf("%d\n", resposta);
return 0;
}
Copy The Code &
Try With Live Editor
Input
Output
#3 Code Example with C Programming
Code -
C Programming
#include <stdio.h>
#include <math.h>
int main(void) {
short n;
scanf("%hd", &n);
printf("%d\n", (int) pow(4, (int) log2(n)));
return 0;
}
Copy The Code &
Try With Live Editor
Input
Output
#2 Code Example with Javascript Programming
Code -
Javascript Programming
const { readFileSync } = require("fs")
const [size] = readFileSync("/dev/stdin", "utf8").split("\n")
const squaresFromSize = (size) => 2 ** (Math.floor(Math.log2(size)) * 2)
console.log(squaresFromSize(+size))
Copy The Code &
Try With Live Editor
Input
Output