結果
問題 | No.740 幻の木 |
ユーザー |
![]() |
提出日時 | 2019-02-27 01:02:47 |
言語 | C++11 (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 2 ms / 2,000 ms |
コード長 | 957 bytes |
コンパイル時間 | 1,224 ms |
コンパイル使用メモリ | 157,776 KB |
実行使用メモリ | 5,376 KB |
最終ジャッジ日時 | 2024-06-23 04:59:01 |
合計ジャッジ時間 | 1,531 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 6 |
ソースコード
#include <bits/stdc++.h>using namespace std;int main() {// 1. 入力情報取得.int N, M, P, Q;cin >> N >> M >> P >> Q;// 2. 葉を全て落とすのは何か月目?// 2-1. 1年で落とす枚数は?int Y = M * (12 + Q);// 2-2. 幻の木がすべての葉を落とすのにかかる年数は?// -> (N / Y) 年 -> これの月数を, 変数 ans に 加算.int ans = 0;ans = (N / Y) * 12;N -= Y * (N / Y);// 2-3. 残った葉を落とすのにかかる月数は?int month = 1;while(N > 0){ans++;// 葉を落とす(通常の期間).N -= M;// 葉を落とす(風の強い期間, P ~ (P + Q - 1)月と設定).if(P <= month && month <= P + Q - 1) N -= M;// 年度更新.month++;if(month > 12) month -= 12;}// 3. 出力 ~ 終了.cout << ans << endl;return 0;}