Archives
Trending
Support
Login
clear text
XML
Django
JavaScript
MATLAB
C
C++
C#
Python
SQL
Shell
Bash
Markdown
YAML
JSON
HTML
CSS
PHP
Java
Ruby
Go
Rust
Swift
Kotlin
Arduino
TypeScript
Perl
Autohotkey
Lua
SQF
R
Scala
Haskell
Groovy
Dart
Clojure
VB.NET
Objective-C
PowerShell
Bash
CoffeeScript
Verilog
#include
#include
#include
using namespace std; const int maxn = 555; string add_two_numbers(string a, string b) { if(a.size() < b.size()) { swap(a, b); } int carry = 0; string res = ""; int i = (int) a.size() - 1, j = (int) b.size() - 1; while(j >= 0 and i >= 0) { int digit_a = (int) (a[i] - '0'); int digit_b = (int) (b[j] - '0'); int sum = digit_a + digit_b + carry; if(sum < 10) { carry = 0; } else { carry = 1; sum -= 10; } res += (sum + '0'); i--; j--; } while(i >= 0) { int digit_a = (int) (a[i] - '0'); int sum = digit_a + carry; if(sum < 10) { carry = 0; } else { carry = 1; sum -= 10; } res += (sum + '0'); i--; } if(carry == 1) { res += "1"; } reverse(res.begin(), res.end()); return res; } string multiply_two_numbers(string a, string b) { vector
v((int) a.size() + (int) b.size(), 0); int sz_a = (int) a.size(); int sz_b = (int) b.size(); for(int i = sz_a - 1; i >= 0; i--) { for(int j = sz_b - 1; j >= 0; j--) { v[i + j + 1] += (a[i] - '0') * (b[j] - '0'); } } for(int i = sz_a + sz_b - 1; i >= 0; i--) { if(v[i] >= 10) { v[i - 1] += v[i] / 10; v[i] %= 10; } } string res = ""; int i = 0; while(v[i] == 0) { i++; } while(i < sz_a + sz_b) { res += (v[i] + '0'); i++; } return res; } string power(string a, int k) { string res = "1"; while(k--) { res = multiply_two_numbers(res, a); } return res; } bool compare(string a, string b) { if(a.size() < b.size()) { return true; } if(a.size() > b.size()) { return false; } if(a == b) { return true; } if(a < b) { return true; } return false; } string to_str(int number) { string res = ""; while(number) { int digit = number % 10; res += (digit + '0'); number /= 10; } reverse(res.begin(), res.end()); return res; } int n, m, k, x; string words[maxn]; int main() { ios_base::sync_with_stdio(false); cin >> n >> m >> k >> x; string s; cin >> s; string X = to_str(x); string K = to_str(k); for(int i = 0; i < m; i++) { cin >> words[i]; sort(words[i].begin(), words[i].end()); } vector
pows; pows.push_back("1"); string current_power = "1"; for(int i = 0; i < m; i++) { current_power = multiply_two_numbers(current_power, K); pows.push_back(current_power); } current_power = pows[(int) pows.size() - 2]; string tmp = "1"; int at = 0; vector
res; while(compare(add_two_numbers(tmp, current_power), X)) { tmp = add_two_numbers(tmp, current_power); at++; } res.push_back(words[0][at]); int idx = (int) pows.size() - 3; int i = 1; while(idx >= 0) { at = 0; while(compare(add_two_numbers(tmp, pows[idx]), X)) { tmp = add_two_numbers(tmp, pows[idx]); at++; } res.push_back(words[i][at]); i++; idx--; } int o = 0; for(int i = 0; i < n; i++) { if(s[i] == '#') { s[i] = res[o++]; } cout << s[i]; } return 0; }
Mark as private (unlisted)
for 30 minutes
for 6 hours
for 1 day
for 1 week
for 1 month
for 1 year
everlasting (like CCCP)