Problema da sexta-feira treze (USACO)

From AdonaiMedrado.Pro.Br
Revision as of 13:27, 15 July 2009 by Adonaimedrado (Talk | contribs) (Dificuldade Única)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Tradução de Friday the Thirteenth da USACO (http://ace.delos.com/usacoprob2?a=rRnbNp27COM&S=friday).

Dificuldade Única

É incomum uma sexta-feira treze?

Isto é, o décimo terceiro dia do mês cai em uma sexta-feira menos vezes do que nos outros dias da semana? Para responder à esta questão escreva um programa que, dado um intervalo de anos, compute a freqüência em que o décimo terceiro dia de cada mês foi/será um domingo, uma segunda, uma terça, uma quarta, uma quinta, uma sexta e um sábado. Para um dado número N de anos o intervalo a ser testado será de primeiro de janeiro de 1900 até 31 de dezembro de 1900+N-1. N será não negativo e irá ser menor que 400.

Existem alguns fatos que você precisa saber para resolver este problema:

  • O dia primeiro de janeiro de 1900 foi uma segunda-feira.
  • Setembro, abril, junho e novembro têm 30 dias, todos os outros meses tem 31 exceto fevereiro que tem 28, exceto nos anos bissextos nos quais ele tem 29.
  • Todo ano par divisível por 4 é um ano bissexto (1992 = 4*468 então 1992 será um ano bissexto, mas 1990 não é um ano bissexto).
  • A regra acima não é válida para anos de virada de século. Estes anos devem ser divisíveis por 400 para serem anos bissextos, todos os outro não são. Assim, o ano 1700, 1800, 1900 e 2100 não são bissextos, mas 2000 é bissexto.

Para resolver esta questão não é permitido o uso de funções de data da linguagem.

Não compute previamente as respostas.

Formato de entrada

Uma linha com o inteiro N.

Nome do arquivo de entrada: friday.in.

Exemplo de entrada

20

Formato de saída

Uma linha com sete inteiros separados por espaço. Estes inteiros representam o número de vezes em que o décimo terceiro dia do mês caiu no sábado, no domingo, na segunda, na terça, ..., na sexta [atenção à ordem].

Nome do arquivo de saída: friday.out.

Exemplo de saída

36 33 34 33 35 35 34