結果
| 問題 |
No.928 軽減税率?
|
| コンテスト | |
| ユーザー |
asdf1
|
| 提出日時 | 2019-11-22 22:36:51 |
| 言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 2,084 bytes |
| コンパイル時間 | 2,406 ms |
| コンパイル使用メモリ | 194,360 KB |
| 最終ジャッジ日時 | 2025-01-08 05:16:55 |
|
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 18 WA * 13 TLE * 3 |
ソースコード
#pragma target("avx")
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef long double ld;
typedef pair<ll, ll> P;
typedef vector<ll> V;
typedef unordered_map<ll, ll> U_MAP;
typedef priority_queue<ll> pq;
typedef priority_queue<ll, vector<ll>, greater<ll>> rpq;
const int INF = 1e9, MOD = 1e9 + 7, ohara = 1e6 + 10;
const ll LINF = 1e18;
#define rep(i, n) for (ll(i) = 0; (i) < (int)(n); (i)++)
#define rrep(i, a, b) for (ll i = (a); i < (b); i++)
#define rrrep(i, a, b) for (ll i = (a); i >= (b); i--)
#define all(v) (v).begin(), (v).end()
#define Size(n) (n).size()
#define Cout(x) cout << (x) << endl
#define doublecout(a) cout << fixed << setprecision(15) << a << endl;
#define fi first
#define se second
#define m_p make_pair
#define p_b push_back
//------ Believe yourself as a genius!!!!!! ------
int dy[] = {1, 0, -1, 0};
int dx[] = {0, 1, 0, -1};
// int dy[]={-1,0,1,-1,1,-1,0,1};int dx[]={-1,-1,-1,0,0,1,1,1};
string alph("abcdefghijklmnopqrstuvwxyz"), s;
ll n, cnt, ans, a, b, c, d, tmp, m, h, w, x, y, sum, k, q, p;
int main(void) {
cin.tie(0);
cout.tie(0);
ios::sync_with_stdio(false);
cin >> p >> q >> a;
ll le = 0, ri = INF, mid;
while (ri - le > 1) {
mid = (le + ri) / 2;
ld co1, co2;
co1 = (ld)floor((ld)mid + (ld)((ld)p * (ld)mid) / (ld)100.0);
co2 = (ld)floor((ld)mid + (ld)((ld)q * (ld)mid) / (ld)100.0) + (ld)a;
// doublecout(co2);(ld)
if (co1 < co2 && abs(co1 - co2) > 1.0)
le = mid;
else
ri = mid;
}
rrrep(i, min(ri + 10, (ll)INF + 1), max(le - 10, 0LL)) {
ld co1, co2;
co1 = floor((ld)i + (ld)(p * i) / (ld)100.0);
co2 = floor((ld)i + (ld)(q * i) / (ld)100.0) + (ld)a;
if (co1 < co2 && abs(co1 - co2) > 1.0) {
ans += i;
tmp = i + 1;
break;
}
}
while (1) {
ld co1, co2;
co1 = floor((ld)tmp + (ld)(p * tmp) / (ld)100.0);
co2 = floor((ld)tmp + (ld)(q * tmp) / (ld)100.0) + (ld)a;
if (co1 < co2) {
ans++;
cnt = max(cnt, tmp);
}
if (abs(co1 - co2) > 2) break;
tmp++;
}
Cout(ans);
return 0;
}
asdf1