PC/UVa ID : 110203/10050

개요

특정 기간 N일 동안, 동맹 휴업을 하는 정당들의 휴업일 총 수를 구하라는 것이다. 정당들의 수를 P라고 했을 때, 정당들의 휴업 지수를 각 h1 h2 .. 라고 한다. 이 휴업지수는 그 지수일자 만큼 일 한 뒤에 1번 쉰다는 뜻이다.

특정 기간 N일 중 1일 째는 무조건 일요일이며, 예외적으로 금요일, 토요일에는 휴업을 하지 않는다. .

여기까지 일반적인 설명이고, 자세한것은 링크를 보길 바란다.

예 )
http://blog.naver.com/nam_s_y/140039960770
http://talsu.net/125
http://www.programming-challenges.com/pg.php?page=downloadproblem&probid=110203&format=html
http://deren.tistory.com/82

입력

  1. 입력의 첫번째는 테스트 케이스 갯수를 받는다.
  2. 다음줄에는 시뮬레이션 돌릴 기간 N을 받으며, 7일 ~ 3650일 까지만 받는다.
  3. 그 다음줄에는 참여할 정당들의 수 P를 받는다. 1 ~ 100 까지 받을 수 있다.
  4. 그 다음줄에는 P의 갯수 만큼의 휴업 지수를 입력받는다. 휴업 지수는 양의 정수만 된다.

출력

모든 입력이 끝나면, 바로 출력한다.





C++

posted by 농사를 짓는 게임 프로그래머 최익필

댓글을 달아 주세요

  1. Favicon of https://www.ikpil.com 농사를 짓는 게임 프로그래머 최익필 2009.11.07 03:41 신고  Addr  Edit/Del  Reply

    알고리즘을 생각해 보니 다음과 같이 처리 해야 한다.
    1. 우선 모든 쉬는 날을 받아 온다.
    2. 그 쉬는 모든 날에서 금요일, 토요일날만 지우고 집게 한다.
    3. 여기서 일요일이 1일이라고 했을 때, 금요일은 6일째 되는날이고, 토요일은 7일째 되는 날이다. 다음주 금토일은 6일째 되는 날로부터 7일 이후고 토요일은 7일째 되는 날로 부터 7일 후으므로, 6 + 7x 와 7 + 7x 의 방적식이 만들어 진다.

    그러므로 문제 풀이 끝. 코드로 만들어 보자.

  2. Favicon of https://www.ikpil.com 농사를 짓는 게임 프로그래머 최익필 2009.11.07 15:41 신고  Addr  Edit/Del  Reply

    이 문제의 관건은 어떻게 "금요일, 토요일"을 뺄것인가? 이다. 병철이와 함께 생각해서 "일짜를 7로 나누엇을 때, 나머지가 0이면 통일, 6이면 금요일"이란 알고리즘을 생각해서 풀었다.