Soldados en fila P81846


Statement
 

pdf   zip

html

“¿Cómo colocar 10 soldados en 5 filas de 4 soldados por fila?”



Aunque parezca un problema imposible, he aquí una solución:



unit=0.40cm (16,16)

[linestyle=dashed,linewidth=0.5pt](8,8)8

[fillstyle=solid](8,16)0.40(8,16) [fillstyle=solid](0.3915,10.4721)0.41(0.3915,10.4721) [fillstyle=solid](15.6085,10.4721)0.42(15.6085,10.4721) [fillstyle=solid](3.2977,1.5279)0.43(3.2977,1.5279) [fillstyle=solid](12.7023,1.5279)0.44(12.7023,1.5279)

[linewidth=2pt]-03 [linewidth=2pt]-04 [linewidth=2pt]-12 [linewidth=2pt]-14 [linewidth=2pt]-32

[fillstyle=solid](8,4.95)0.45(8,4.95) [fillstyle=solid](10.9,7.05)0.46(10.9,7.05) [fillstyle=solid](5.1,7.05)0.47(5.1,7.05) [fillstyle=solid](9.8,10.45)0.48(9.8,10.45) [fillstyle=solid](6.2,10.45)0.49(6.2,10.45)

Entrada

La entrada consiste en diversos casos, cada uno con un número natural n entre 2 y 108.

Salida

Para cada caso, se deben colocar n soldados en filas, como sigue: En una circunferencia, hay que escoger x puntos diferentes, para x impar y al menos 3. Después, hay que trazar x segmentos rectos entre pares diferentes de esos x puntos. Al final, se puede colocar un soldado en cada intersección resultante, incluyendo las producidas en los extremos de los segmentos.

Para cada n dada, escribid la mínima x que permite colocar al menos n soldados.

Public test cases
  • Input

    10
    11
    2
    99976869
    99976870
    99976871
    

    Output

    5
    7
    3
    14141
    14141
    14143
    
  • Information
    Author
    Salvador Roura
    Language
    Spanish
    Other languages
    English
    Official solutions
    C++
    User solutions
    C++