2021-06-15 00:49:18 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								---
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								id: 5900f5091000cf542c51001b
							 
						 
					
						
							
								
									
										
										
										
											2021-11-24 07:29:35 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								title: 'Problema 408: Caminhos admissíveis através de uma grade'
							 
						 
					
						
							
								
									
										
										
										
											2021-06-15 00:49:18 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								challengeType: 5
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								forumTopicId: 302076
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								dashedName: problem-408-admissible-paths-through-a-grid
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								---
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# --description--
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-11-24 07:29:35 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Vamos chamar um ponto da rede ($x$, $y$) de inadmissível se $x$, $y$ e $x + y$ forem todos quadrados positivos perfeitos.
							 
						 
					
						
							
								
									
										
										
										
											2021-06-15 00:49:18 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-11-24 07:29:35 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Por exemplo, (9, 16) é inadmissível, mas (0, 4), (3, 1) e (9, 4) não são.
							 
						 
					
						
							
								
									
										
										
										
											2021-06-15 00:49:18 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-11-24 07:29:35 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								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.
							 
						 
					
						
							
								
									
										
										
										
											2021-06-15 00:49:18 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-11-24 07:29:35 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								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$.
							 
						 
					
						
							
								
									
										
										
										
											2021-06-15 00:49:18 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-11-24 07:29:35 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Encontre $P(10.000.000)\bmod 1.000.000.007$.
							 
						 
					
						
							
								
									
										
										
										
											2021-06-15 00:49:18 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# --hints--
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-11-24 07:29:35 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								`admissiblePaths()`  deve retornar `299742733` . 
						 
					
						
							
								
									
										
										
										
											2021-06-15 00:49:18 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```js
							 
						 
					
						
							
								
									
										
										
										
											2021-11-24 07:29:35 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								assert.strictEqual(admissiblePaths(), 299742733);
							 
						 
					
						
							
								
									
										
										
										
											2021-06-15 00:49:18 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# --seed--
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								## --seed-contents--
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```js
							 
						 
					
						
							
								
									
										
										
										
											2021-11-24 07:29:35 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								function admissiblePaths() {
							 
						 
					
						
							
								
									
										
										
										
											2021-06-15 00:49:18 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  return true;
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-11-24 07:29:35 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								admissiblePaths();
							 
						 
					
						
							
								
									
										
										
										
											2021-06-15 00:49:18 -07:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# --solutions--
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```js
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								// solution required
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```