へんてこのブログ

日々気づいたことや、最近やっていることを書いています

ICPC2012国内予選 Problem Aミレニアム

Problem Aミレニアム
http://www.psg.cs.titech.ac.jp/icpc/icpc2012/contest/A_ja.html
解法:(1年1月1日~1000年1月1日までの日にち) - (1年1月1日~実際の入力された日にち) = 解答

#include<iostream>
#include<vector>


using namespace std;

int main() {
    int X;
    for (int i=1; i <= 999; i++) {
        for(int j=1;j <= 10;j++) {
            int day = 0;
            if(i % 3 == 0)  {
                X += 200;
                break;
            }else {
                if(j % 2 == 0) {
                    day = 19;
                }else {
                    day = 20;
                }
                
                X += day;
            }
        }
    }
    
    X += 1;
    
    int n;
    
    while (cin >> n) {
        int Y,M,D;
        for (int K=0; K < n; K++) {
            cin >> Y >> M >> D;
        
        int sum = 0;
        for (int i=1; i <= Y-1; i++) {
            for(int j=1;j <= 10;j++) {
                int day = 0;
                if(i % 3 == 0)  {
                    sum += 200;
                    break;
                }else {
                    if(j % 2 == 0) {
                        day = 19;
                    }else {
                        day = 20;
                    }
                    
                    sum += day;
                }
            }
        }
        
        for(int j=1;j <= M-1;j++) {
            int day = 0;
            if(Y % 3 == 0)  {
                sum += 20;
            }else {
                if(j % 2 == 0) {
                    day = 19;
                }else {
                    day = 20;
                }
                
                sum += day;
            }
        }
        
        sum += D;
        cout << X - sum << endl;
        }
    }
    
    
}