結果
問題 | No.747 循環小数N桁目 Hard |
ユーザー |
![]() |
提出日時 | 2019-12-25 20:51:20 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 3 ms / 2,000 ms |
コード長 | 3,482 bytes |
コンパイル時間 | 886 ms |
コンパイル使用メモリ | 95,464 KB |
実行使用メモリ | 6,948 KB |
最終ジャッジ日時 | 2024-09-25 11:20:10 |
合計ジャッジ時間 | 3,815 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 120 |
ソースコード
/*Author:zekepass System Test!GET AC!!*/#include <iostream>#include <queue>#include <vector>#include <iostream>#include <vector>#include <string>#include <cassert>#include <algorithm>#include <functional>#include <cmath>#include <queue>#include <set>#include <stack>#include <deque>#include <map>#include <iomanip>#include <utility>#include <stack>using ll = long long;using ld = long double;using namespace std;#define rep(i, n) for (int i = 0; i < (int)(n); i++)#define all(x) (x).begin(), (x).end()#define rep3(var, min, max) for (ll(var) = (min); (var) < (max); ++(var))#define repi3(var, min, max) for (ll(var) = (max)-1; (var) + 1 > (min); --(var))#define Mp(a, b) make_pair((a), (b))#define F first#define S second#define Icin(s) \ll(s); \cin >> (s);#define Scin(s) \ll(s); \cin >> (s);template <class T>bool chmax(T &a, const T &b){if (a < b){a = b;return 1;}return 0;}template <class T>bool chmin(T &a, const T &b){if (b < a){a = b;return 1;}return 0;}typedef pair<ll, ll> P;typedef vector<ll> V;typedef vector<V> VV;typedef vector<P> VP;ll MOD = 1e9 + 7;ll INF = 1e18;ll a, b, p, q, r;ll judge(ld x){ld res = (x - a) * q;res += (x - b) * r;ld temp = p * b;return temp <= res;}struct fenwick_tree{typedef int T;T n;vector<T> bit;// 各要素の初期値は 0fenwick_tree(T num) : bit(num + 1, 0) { n = num; }// a_i += wvoid add(T i, T w){for (T x = i; x <= n; x += x & -x){bit[x] += w;}}// [1, i] の和を計算.T sum(T i){T ret = 0;for (T x = i; x > 0; x -= x & -x){ret += bit[x];}return ret;}// [left+1, right] の和を計算.T sum(T left, T right){return sum(right) - sum(left);}};int main(){cin.tie(0);ios::sync_with_stdio(false);string s, t;cin >> s >> t;ll res ;if ((s[s.size() - 1] - '0') % 2 == 0){ll temp = 0;// cout<<s<<endl;rep(i, s.size() ){temp += (s[i] - '0');// cout<<temp<<endl;}// cout<<temp<<endl;if (temp % 3 == 0){res = 0;}else if (temp % 3 == 1){res = 4;}else{res = 2;}}else{ll temp = 0;rep(i, s.size() ){temp += (s[i] - '0');}if (temp % 3 == 0){res = 3;}else if (temp % 3 == 1){res = 1;}else{res = 5;}}// cout<<res<<endl;switch (res){case 0:cout << 4 << endl;break;case 1:cout << 2 << endl;break;case 2:if ((t[t.size() - 1] - '0') % 2 == 0){cout << 7 << endl;}else{cout << 8 << endl;}break;case 3:cout << 5 << endl;break;case 4:cout << 7 << endl;break;case 5:if ((t[t.size() - 1] - '0') % 2 == 0){cout << 2 << endl;}else{cout << 1 << endl;}}}