ぱーぽーの競プロ記

競技プログラミングに関することを書きます。

AOJ 1179 Millennium

問題文はこちら
http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=1179&lang=jp


・概要
特殊なカレンダーのもとで、日数計算する問題です。
あとは省略


・解法
やるだけ問題です。
下のソースコードはあんまりきれいじゃないです。


ソースコード

#include<iostream>
using namespace std;

int main(){
   int T;
   cin >> T;
   while(T--){
      int y,m,d;
      cin >> y >> m >> d;
      
      int ans = 0;
      for(int i = m ; i <= 10 ; i++){
	 if(i==m){
	    if(y%3==0 || i%2==1)ans += 20 - d + 1;
	    else ans += 19 - d + 1;
	 }
	 else{
	    if(y%3==0 || i%2==1)ans += 20;
	    else ans += 19;
	 }
      }

      for(int i = y+1 ; i < 1000 ; i++){
	  if(i%3==0)ans += 20*10;
	  else ans += 19*5 + 20*5;
      }

      cout << ans << endl;
   }
   return 0;
}