ww

Run Settings
LanguageC++
Language Version
Run Command
#include <bits/stdc++.h> using namespace std; // type typedef long long ll; typedef long double ld; // loop //#define For(i, l, r, x) for (int i = l; i < r; i+=x) //#define ForE(i, l, r, x) for (int i = l; i <= r; i+=x) //#define Ford(i, r, l) for (int i = r; i > l; i--) //#define FordE(i, r, l) for (int i = r; i >= l; i--) //#define Fora(i, a) for (auto i : a) // I/O #define FAST_IO std::ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); //#define PrintV(a) Fora(ii, a) cout << ii << ' '; cout << rl; //#define PrintVl(a) Fora(ii, a) cout << ii << rl; //#define PrintA(a, l, r) for (int ii = l; ii <= r; ii++) cout << a[ii] << ' '; cout << rl; //#define PrintAl(a, l, r) for (int ii = l; ii <= r; ii++) cout << a[ii] << rl; //#define Ptest(x) return cout << x, 0; #define setpre(n) fixed << setprecision(n) // pair #define F first #define S second #define pii pair<int, int> #define pll pair<ll, ll> #define pdd pair<ld, ld> // vector & !!?(string) #define eb emplace_back #define pb push_back #define all(a) a.begin(), a.end() #define rall(a) a.rbegin(), a.rend() #define sz(a) a.size() #define len(a) a.length() // geometry calc #define pi acos(-1.0) #define g_sin(a) sin(a*pi/180) #define g_cos(a) cos(a*pi/180) #define g_tan(a) tan(a*pi/180) // set val #define ms0(a) memset(a, 0, sizeof(a)); #define ms1(a) memset(a, 1, sizeof(a)); #define msn1(a) memset(a, -1, sizeof(a)); #define msinf(a) memset(a, 0x3f3f3f, sizeof(a)); // constant const int mod1 = 998244353, mod = 1e9+7; const int MAXN = 1000005, MAXM = 200010; // code //#define int long long vector<int> add(vector<int> a){ for (int i = a.size() - 1; i >= 0; i--){ if (a[i] == 9){ a[i] = 0; if (i == 0){ vector<int> ans(a.size() + 1, 0); ans[0] = 1; return ans; } }else{ a[i] ++; return a; } } } vector<int> mul(vector<int> a){ vector<int> ans; if (a[0] >= 5){ ans.resize(a.size()+1); for (int i = ans.size()-1; i >= 1; i--){ ans[i] = a[i-1]; } ans[0] = 0; }else{ ans = a; } for (int i = 0; i < ans.size(); i++){ ans[i] *= 2; if (i > 0) ans[i-1] += ans[i] / 10; ans[i] %= 10; //cout << ans[i]; } //cout << endl; //for (auto v:ans) cout << v; return ans; } void Solve(){ string s; cin >> s; vector<int> ans(1, 0); //ans = mul(ans); //for (auto v:ans) cout << v; cout << endl; for (char c:s){ int k = c-'0'; ans = mul(ans); if (k) ans = add(ans); //cout << ans << endl; } for (auto v:ans) cout << v; } signed main(){ //freopen(".inp", "r", stdin); //freopen(".out", "w", stdout); FAST_IO; int TC = 1; //cin >> TC; while(TC--) Solve(); //cerr << "Time elapsed : " << 1.0 * clock() / CLOCKS_PER_SEC << " sec \n"; return 0; }
Editor Settings
Theme
Key bindings
Full width
Lines