C++競プロ学習日記(仮)

( 学習記録であり解説Blogではないです )

WUPC2012 A - 招待状|AtCoder

A: 招待状 - WUPC 2012 | AtCoderを解きました。

#include <bits/stdc++.h>
using namespace std;
struct cww{cww(){ios::sync_with_stdio(false);cin.tie(0);}}star;
int main()
{
    vector<int> M{ 0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
    int MM1, DD1, MM2, DD2;
    cin >> MM1 >> DD1 >> MM2 >> DD2;
    //受け取った日と開催月が同じ場合は開催日-受け取った日
    if( MM1 == MM2 )
    {
        cout << DD2 - DD1 << endl;
        return 0;
    }
    //メールを受け取った日の月の「日数」を算出(受け取った日を含むので +1 する)
    int res = ( M[ MM1 ] - DD1 ) + 1;
    //メールを受け取った日の月と開催日"以外"の月の「日数」を足す
    for( int i = MM1 + 1; i <= MM2 - 1; i++ )
    {
        res += M[ i ];
    }
    //開催月の開催日までの「日数」を足す(開催日は含まないので -1 する)
    cout << res + ( DD2 - 1 ) << endl;
    return 0;
}