【AOJ 2780】Best Matched Pair
問題
Best Matched Pair | Aizu Online Judge
方針
全通り試す
コード
#include <iostream> using namespace std; #define rep(i,n) REP(i,0,n) #define REP(i,a,n) for(int i = a ; i < (int)n ; i++) int n; int a[1001]; bool check(int num){ int prev = num % 10; num /= 10; while(num > 0){ if(num%10 != prev - 1){ // 順番になってない場合 return false; } prev = num % 10; num /= 10; } return true; } signed main(){ cin.tie(0); ios::sync_with_stdio(false); cin >> n; rep(i, n) cin >> a[i]; int ans = -1; rep(i, n-1){ REP(j, i+1, n){ int num = a[i] * a[j]; if(check(num) && ans < num) ans = num; } } cout << ans << endl; }