AOJ 1186: Integral Rectangles
問題
Integral Rectangles | Aizu Online Judge
長方形に 1. 対角線の長さが短いほうが小さい. 2. 対角線の長さが同じならば,高さの低いほうが小さい. という大小関係を定める
hxwより大きい横長の長方形で最小のものを求めよ
方針
全通り作って調べる
コード
#include <bits/stdc++.h> using namespace std; typedef long long ll; #define rep(i, n) for(int i=0; i<(n); ++i) int main(void){ int h, w, diag; int bh, bw; while(cin >> h >> w && h) { int mind = numeric_limits<int>::max(); bh = numeric_limits<int>::max(); diag = h*h + w*w; for(int i=1; i<151; ++i) { for(int j=i+1; j<151; ++j) { int t = i*i+j*j; if(t > diag || (t==diag && i>h)) { if(t < mind || (t==mind && i<bh)) { mind = t; bh = i; bw = j; } break; } } } cout << bh << " " << bw << endl; } }
http://judge.u-aizu.ac.jp/onlinejudge/review.jsp?rid=1892178
反省
条件2を考慮してなくて3WAした