結果
問題 | No.863 計算量 |
ユーザー |
![]() |
提出日時 | 2019-08-19 12:01:27 |
言語 | C++11 (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 6 ms / 1,000 ms |
コード長 | 3,419 bytes |
コンパイル時間 | 701 ms |
コンパイル使用メモリ | 72,980 KB |
実行使用メモリ | 7,936 KB |
最終ジャッジ日時 | 2024-10-03 03:44:47 |
合計ジャッジ時間 | 1,273 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 13 |
ソースコード
#include<iostream>#include<algorithm>#include<vector>#include<queue>#include<stack>#include<list>#include<set>#include<string>using namespace std;int gcd(int a, int b) {int c = a % b;while (c != 0) {a = b;b = c;c = a % b;}return b;}struct UnionFind {vector<int> par; // par[i]:iの親の番号 (例) par[3] = 2 : 3の親が2UnionFind(int N) : par(N) { //最初は全てが根であるとして初期化for (int i = 0; i < N; i++) par[i] = i;}int root(int x) { // データxが属する木の根を再帰で得る:root(x) = {xの木の根}if (par[x] == x) return x;return par[x] = root(par[x]);}void unite(int x, int y) { // xとyの木を併合int rx = root(x); //xの根をrxint ry = root(y); //yの根をryif (rx == ry) return; //xとyの根が同じ(=同じ木にある)時はそのままpar[rx] = ry; //xとyの根が同じでない(=同じ木にない)時:xの根rxをyの根ryにつける}bool same(int x, int y) { // 2つのデータx, yが属する木が同じならtrueを返すint rx = root(x);int ry = root(y);return rx == ry;}};typedef long long ll;ll M = 1000000007;vector<ll> fac(300001); //n!(mod M)vector<ll> ifac(300001); //k!^{M-2} (mod M)ll mpow(ll x, ll n) {ll ans = 1;while (n != 0) {if (n & 1) ans = ans * x % M;x = x * x % M;n = n >> 1;}return ans;}void setcomb() {fac[0] = 1;ifac[0] = 1;for (ll i = 0; i < 1000000; i++) {fac[i + 1] = fac[i] * (i + 1) % M; // n!(mod M)}ifac[1000000] = mpow(fac[1000000], M - 2);for (ll i = 1000000; i > 0; i--) {ifac[i - 1] = ifac[i] * i%M;}}ll comb(ll a, ll b) {if (a == 0 && b == 0)return 1;if (a < b || a < 0)return 0;ll tmp = ifac[a - b] * ifac[b] % M;return tmp * fac[a] % M;}ll perm(ll a, ll b) {if (a == 0 && b == 0)return 1;if (a < b || a < 0)return 0;return fac[a] * ifac[a - b] % M;}// mod. m での a の逆元 a^{-1} を計算するlong long modinv(long long a) {long long b = M, u = 1, v = 0;while (b) {long long t = a / b;a -= t * b; swap(a, b);u -= t * v; swap(u, v);}u %= M;if (u < 0) u += M;return u;}vector<vector<ll>> mul(vector<vector<ll>> a, vector<vector<ll>> b, int n) {int i, j, k, t;vector<vector<ll>> c(n);for (i = 0; i < n; i++) {for (j = 0; j < n; j++) {t = 0;for (k = 0; k < n; k++)t = (t + a[i][k] * b[k][j] % M) % M;c[i].push_back(t);}}return c;}template< typename Monoid >struct SegmentTree {int sz;vector< Monoid > seg;const Monoid M1;SegmentTree(int n, const Monoid &M1) : M1(M1) {sz = 1;while (sz < n) sz <<= 1;seg.assign(2 * sz, M1);}void set(int k, const Monoid &x) {seg[k + sz] = x;}void build() {for (int k = sz - 1; k > 0; k--) {seg[k] = f(seg[2 * k + 0], seg[2 * k + 1]);}}void update(int k, const Monoid &x) {k += sz;seg[k] = x;while (k >>= 1) {seg[k] = f(seg[2 * k + 0], seg[2 * k + 1]);}}Monoid query(int a, int b) {Monoid L = M1, R = M1;for (a += sz, b += sz; a < b; a >>= 1, b >>= 1) {if (a & 1) L = f(L, seg[a++]);if (b & 1) R = f(seg[--b], R);}return f(L, R);}Monoid value(const int &k) const {return seg[k + sz];}Monoid f(Monoid a, Monoid b) {return a + b;}};int main() {ll a, b, c1, c2;cin >> a >> b;c1 = abs(a * 40 - b);c2 = abs(a * 1600 - b);cout << (c1 > c2) + 1 << endl;}