問題
https://codeforces.com/contest/1360/problem/A
問題概要
2つの辺がaとbの長方形2つを、はみ出さずに敷き詰めることができる正方形の面積を求めよ。
考察
わざわざはみ出させても得をしませんから、2つの長方形は同じ長さの辺が揃うように並べて2倍の面積の長方形を作るが最適です。またこのとき、長い方の辺を揃えて短い方の辺が2倍になる方が明らかに得です。
そして、長くなる方の辺が正方形の一辺となります。
実装的には、aとbの大小で長さの計算を場合分けする、必要ならswapしてa<bとして計算する、両方計算して小さい方を取る、など色んな方法で辺の長さを算出することができます。
答えるのは面積なので、掛け合わせるのを忘れないようにしましょう。
#include <bits/stdc++.h> using namespace std; int main() { int t; cin >> t; while (t--) { int a, b; cin >> a >> b; if (a > b) swap(a, b); int x = max(a * 2, b); cout << x * x << endl; } }