アットウィキロゴ
競技プログラミング用 知識集積所
掲示板 掲示板 ページ検索 ページ検索 メニュー メニュー

競技プログラミング用 知識集積所

ABC438A - First Contest of the Year

最終更新:

sport_programming

- view
管理者のみ編集可


問題


必要知識


考え方

まずは入力内容を確認。
入力内容は整数が2つなので、int型の変数を2つ用意してcinで入力を受け取る。

f日にコンテストが開催されるので、その後はf+7日、f+14日、f+21日、……にコンテストが開催される。
初めて年内開催ではないのがいつかを求めればよい。

これはfに7ずつ加えていくループになるが、何回ループするかはっきりしないので、forループよりもwhileループの方が適している。
ループ継続条件をf<=dとしておけば、初めてfがdより大きくなったところでループが止まる。
このときのfから1年の日数であるdを引いておけば、大晦日からはみ出る日数すなわち答えとなる。

最後に忘れずにcoutしておしまい。

解答例


注意点

7日と答えるべき入力に注意。

日付は1始まり。
%で剰余計算したりループ終了条件を間違えたりすると、うっかり0日という答えを出しかねないので注意。
入力例にこういうケースがないので、自分でテストを用意する必要がある。

別解

計算で一度に出すこともできる。

公式解説参照。
その方が高速ではあるのだが、ちょっと計算式がややこしい。
A問題ならwhileループを回しても十分間に合うので、書きやすい方を選ぶのがよい。
最近更新されたスレッド
ウィキ募集バナー