47 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| ---
 | |
| id: 5900f5091000cf542c51001b
 | |
| title: 'Problema 408: Caminhos admissíveis através de uma grade'
 | |
| challengeType: 5
 | |
| forumTopicId: 302076
 | |
| dashedName: problem-408-admissible-paths-through-a-grid
 | |
| ---
 | |
| 
 | |
| # --description--
 | |
| 
 | |
| Vamos chamar um ponto da rede ($x$, $y$) de inadmissível se $x$, $y$ e $x + y$ forem todos quadrados positivos perfeitos.
 | |
| 
 | |
| Por exemplo, (9, 16) é inadmissível, mas (0, 4), (3, 1) e (9, 4) não são.
 | |
| 
 | |
| Considere um caminho do ponto ($x_1$, $y_1$) ao ponto ($x_2$, $y_2$) usando apenas movimentos unitários para o norte e para o leste. Chamaremos esse caminho de admissível se nenhum de seus pontos intermediários for inadmissível.
 | |
| 
 | |
| Considere $P(n)$ como o número de caminhos admissíveis de (0, 0) a ($n$, $n$). Pode-se verificar que $P(5) = 252$, $P(16) = 596.994.440$ e $P(1.000)\bmod 1.000.000.007 = 341.920.854$.
 | |
| 
 | |
| Encontre $P(10.000.000)\bmod 1.000.000.007$.
 | |
| 
 | |
| # --hints--
 | |
| 
 | |
| `admissiblePaths()` deve retornar `299742733`.
 | |
| 
 | |
| ```js
 | |
| assert.strictEqual(admissiblePaths(), 299742733);
 | |
| ```
 | |
| 
 | |
| # --seed--
 | |
| 
 | |
| ## --seed-contents--
 | |
| 
 | |
| ```js
 | |
| function admissiblePaths() {
 | |
| 
 | |
|   return true;
 | |
| }
 | |
| 
 | |
| admissiblePaths();
 | |
| ```
 | |
| 
 | |
| # --solutions--
 | |
| 
 | |
| ```js
 | |
| // solution required
 | |
| ```
 |