AOJ 1192 Tax Rate Changed

問題

Tax Rate Changed | Aizu Online Judge 消費税がx%のとき合計金額がs円だった2つの品物を消費税y%のときに買ったときの値段の最大値を求めよ。 なお、消費税がx%のときの値段はp (100+x) / 100を切り捨てた整数値である。

方針

合計がsになるペアを全探索する。s<1000なので十分間に合う

コード

#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 x, y, s;
    while(cin >> x >> y >> s && x) {
        int ans = 0;
        for(int i=1; i<s; ++i) {
            for(int j=1; ; ++j) {
                int p = i*(100+x)/100 + j*(100+x)/100;
                if(p > s) break;
                if(p == s) {
                    ans = max(ans, i*(100+y)/100 + j*(100+y)/100);
                }
            }
        }
        cout << ans << endl;
    }
}

http://judge.u-aizu.ac.jp/onlinejudge/review.jsp?rid=1886751

反省

  • さすがにもう少し探索範囲を絞れそうだが切り捨ての処理でいろいろバグったのであきらめた