たなしょのメモ

日々勉強していることをつらつらと

A - Harmony

はじめに

たなしょです。

今回は自力で解けました。嬉しい!

問題文

相違なる整数 A, Bがあります。

|A−K| = | B − K | となるような整数 K を出力してください。

そのような整数が存在しなければ、代わりに IMPOSSIBLE を出力してください。

制約

  1. 入力は全て整数である。
  2. 0≤A,B≤109
  3. A と B は相違なる。

考え方

2つの数を引いて、その絶対値を2でわります。 2で割って現れた整数を2つの数のうち小さい方には足し、大きい方には引くことによって出てきた解が同じであれば数値を出力、存在しない場合は文字列を出力する感じです。

いざ実装

#include <iostream>
#include <vector>
#include <utility>
#include <algorithm>
#include <cstdlib>

using namespace std;

int main()
{
    int a, b;
    cin >> a >> b;

    int ans, s, d;
    
    ans = abs(a-b);
 
    ans = ans/2;

    if (a > b) {
        s = a - ans;
        d = b + ans;
    } else {
        s = b - ans;
        d = a + ans;
    }

    if (s == d) {
        cout << s << endl;
    } else {
        cout << "IMPOSSIBLE" << endl;
    }

    

    return 0;
    
}

最後に

A問題でも結構苦労しました。大変だった汗

最後まで読んでいただいてありがとうございました。 もしよろしければtwitterアカウント(@piklus100yen)もフォローしていただけると幸いです!