Algorithm


Problem Name: 2 AD-HOC - beecrowd | 2389

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

Floresta

 

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

Timelimit: 1

O desmatamento é um dos maiores problemas enfrentados pelo Brasil hoje; estima-se que mais de 10 mil km² de vegetação sejam desflorestados todo ano. Além de destruir os habitats de várias espécies em risco de extinção, o desmatamento promove a emissão de gás carbônico, principal responsável pelo efeito estufa e pelo aquecimento global.

A Fundação de Conservação dos Carvalhos (FCC) tenta combater esta tendência, promovendo o reflorestamento das regiões desmatadas. Para isso, eles pretendem plantar carvalhos formando um quadriculado (um carvalho em cada vértice); no centro de cada quadrado formado por eles, a FCC também plantará um eucalipto. Para preservar a biodiversidade da área plantada, pelo menos uma árvore de cada espécie deve ser plantada durante o reflorestamento.

Por exemplo, se a FCC quiser plantar 23 árvores, ela poderá fazê-lo de duas maneiras: ou formando um retângulo 3 × 5 com os carvalhos, como na figura (a), ou formando um retângulo 2 × 8, como na figura (b). Considere que, para os propósitos deste problema, um retângulo X×Y é equivalente a um retângulo Y×X.

Sua tarefa é escrever um programa que, dado o número total de árvores que devem ser plantadas, de quantas maneiras diferentes elas podem ser dispostas.

 

Entrada

 

A única linha da entrada contém um único inteiro N, que indica o número total de árvores que devem ser plantadas (1 ≤ N ≤ 109).

 

Saída

 

Seu programa deve imprimir uma única linha, contendo um único inteiro, indicando o número de arranjos distintos que podem ser feitos para o reflorestamento.

 

 

 

Exemplos de Entrada Exemplos de Saída

23

2

 

Code Examples

#1 Code Example with C++ Programming

Code - C++ Programming


#include <cstdio>
int resposta, k;
int main() {
    scanf("%d", &k);
    for (int i = 2; 2 * i * i - 2 * i + 1  < = k; i++) {
        if ((k + i - 1) % (2 * i - 1) == 0) resposta++;
    }
    printf("%d\n", resposta);
    return 0;
}
Copy The Code & Try With Live Editor

Input

x
+
cmd
23

Output

x
+
cmd
2
Advertisements

Demonstration


Previous
#2388 Beecrowd Online Judge Solution 2388 Tacógrafo Solution in C, C++, Java, Js and Python
Next
#2390 Beecrowd Online Judge Solution 2390 Escada Rolante Solution in C, C++, Java, Js and Python