Problema da sexta-feira treze (USACO)
Tradução de Friday the Thirteenth da USACO (http://ace.delos.com/usacoprob2?a=rRnbNp27COM&S=friday).
Contents
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 intervalor 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