diff --git a/aliennumbers.cpp b/aliennumbers.cpp new file mode 100644 index 0000000..75c5ba5 --- /dev/null +++ b/aliennumbers.cpp @@ -0,0 +1,23 @@ +// GitHub: EntityPlantt/Kattis +#include +using namespace std; +int main() { + int t; + cin >> t; + string nStr, sys1, sys2; + size_t n = 0; + for (int i = 1; i <= t; i++) { + cin >> nStr >> sys1 >> sys2; + while (!nStr.empty()) { + n *= sys1.size(); + n += sys1.find(nStr[0]); + nStr = nStr.substr(1); + } + do { + nStr = sys2[n % sys2.size()] + nStr; + n /= sys2.size(); + } while (n); + cout << "Case #" << i << ": " << nStr << '\n'; + } + return 0; +} \ No newline at end of file diff --git a/aliennumbers.js b/aliennumbers.js new file mode 100644 index 0000000..cb05f74 --- /dev/null +++ b/aliennumbers.js @@ -0,0 +1,27 @@ +// GitHub: EntityPlantt/Kattis +var t = null, i = 1; +require("readline").createInterface({ + input: process.stdin, + output: process.stdout +}).on("line", input => { + if (t == null) { + t = parseInt(input); + } + else { + var [nStr, sys1, sys2] = input.split(" "), n = 0; + while (nStr.length > 0) { + n *= sys1.length; + n += sys1.indexOf(nStr[0]); + nStr = nStr.substr(1); + } + do { + nStr = sys2[n % sys2.length] + nStr; + n = Math.floor(n / sys2.length); + } while (n > 0); + console.log("Case #" + i + ": " + nStr); + i++; + if (t < i) { + process.exit(); + } + } +}); \ No newline at end of file