結果

問題 No.721 Die tertia (ディエ・テルツィア)
ユーザー chacoder1chacoder1
提出日時 2020-11-22 16:14:20
言語 C++17
(gcc 12.3.0 + boost 1.83.0)
結果
AC  
実行時間 2 ms / 2,000 ms
コード長 1,512 bytes
コンパイル時間 2,041 ms
コンパイル使用メモリ 204,836 KB
実行使用メモリ 6,944 KB
最終ジャッジ日時 2024-07-23 16:37:46
合計ジャッジ時間 2,952 ms
ジャッジサーバーID
(参考情報)
judge1 / judge4
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 2 ms
6,812 KB
testcase_01 AC 2 ms
6,940 KB
testcase_02 AC 2 ms
6,944 KB
testcase_03 AC 2 ms
6,944 KB
testcase_04 AC 2 ms
6,944 KB
testcase_05 AC 2 ms
6,944 KB
testcase_06 AC 2 ms
6,944 KB
testcase_07 AC 2 ms
6,944 KB
testcase_08 AC 2 ms
6,940 KB
testcase_09 AC 2 ms
6,940 KB
testcase_10 AC 2 ms
6,940 KB
testcase_11 AC 2 ms
6,940 KB
testcase_12 AC 2 ms
6,944 KB
testcase_13 AC 2 ms
6,940 KB
testcase_14 AC 2 ms
6,940 KB
testcase_15 AC 2 ms
6,940 KB
testcase_16 AC 2 ms
6,944 KB
testcase_17 AC 2 ms
6,940 KB
testcase_18 AC 2 ms
6,940 KB
testcase_19 AC 2 ms
6,944 KB
testcase_20 AC 2 ms
6,940 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

#include <bits/stdc++.h>
using namespace std;

int main(){
  string S;
  cin>>S;
  int uru=0;
  int YY=(S.at(0)-'0')*1000;
  YY+=(S.at(1)-'0')*100;
  YY+=(S.at(2)-'0')*10;
  YY+=(S.at(3)-'0');
  int MM=(S.at(5)-'0')*10;
  MM+=S.at(6)-'0';
  int DD=(S.at(8)-'0')*10;
  DD+=S.at(9)-'0';
  //cout<<YY<<MM<<DD<<endl;
  DD+=2;
  
  /*uru hantei*/
  if((YY%4==0 && YY%100 != 0 )|| YY%400 ==0){
    uru=1;
  }

  //うるう年の2月
  if((uru==1 && MM==2 )&& DD>29){
    cout<<YY<<"/"<<setfill('0')<<right<<setw(2)<<MM+1<<"/"<<setfill('0')<<right<<setw(2)<<DD-29<<endl;
    return 0;
  } 
  //うるう年でない2月
  if(uru==0 && MM==2 && DD>28){
    cout<<YY<<"/"<<setfill('0')<<right<<setw(2)<<MM+1<<"/"<<setfill('0')<<right<<setw(2)<<DD-28<<endl;
    return 0;
  }   
  //年末
  if(MM==12 && DD>31){
    DD-=31;
    MM=1;
    YY++;
    cout<<YY<<"/"<<setfill('0')<<right<<setw(2)<<MM<<"/"<<setfill('0')<<right<<setw(2)<<DD<<endl;
    return 0;
  }
  //大の月 月末
  if((MM==1||MM==3||MM==5||MM==7||MM==8||MM==10)&&(DD>31)){
    cout<<YY<<"/"<<setfill('0')<<right<<setw(2)<<MM+1<<"/"<<setfill('0')<<right<<setw(2)<<DD-31<<endl;
    return 0;
  }  
  //小の月 月末
  if(!(MM==1||MM==3||MM==5||MM==7||MM==8||MM==10)&&(DD>30)){
    cout<<YY<<"/"<<setfill('0')<<right<<setw(2)<<MM+1<<"/"<<setfill('0')<<right<<setw(2)<<DD-30<<endl;
    return 0;
  }   
  
  //繰り上がり処理不要
  cout<<YY<<"/"<<setfill('0')<<right<<setw(2)<<MM<<"/"<<setfill('0')<<right<<setw(2)<<DD<<endl;
  return 0;
}

0