#問題文
高橋君、中橋君、低橋君は、それぞれ整数
A,B,Cを持っています。 以下の操作をK回行った後、高橋君の持っている整数から中橋君の持っている整数を引いた値を求めてください。
3人は同時に、他の 2人の持っている整数の和を求める。その後、自分の持っている整数を求めた整数で置き換える。ただし、答えの絶対値が 10^18を超える場合は、代わりに Unfair と出力してください。
#制約
1≤A,B,C≤10^9
0≤K≤10^18
入力はすべて整数である
#include <bits/stdc++.h> using namespace std; int main(){ int a,b,c,k; cin >> a >> b >> c >> k; if (abs(b-a)>1e18){ puts("Unfair"); } else if (k==0||k%2==0){ cout << (a-b) << endl; } else { cout << (b-a) << endl; } }
としたところWAとなってしましました。テストのために手元で2 3 2 0と入力したところ-1が返ってきて欲しかったのですが0と返ってきたので念のため(不要なはずですが...)k==0||
を追記したところ-1が返ってきたのでそれを提出してもWAが返ってきてしまいました。原因がわかる方、よろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー