Submission #1102396

#TimeUsernameProblemLanguageResultExecution timeMemory
1102396adaawfWeird Numeral System (CCO21_day1problem2)C++17
25 / 25
1092 ms25224 KiB
#include <iostream> #include <queue> #include <map> using namespace std; #define int long long map<int, int> m; vector<int> g[1000005], res; int k; bool trya(int x) { if (m.count(x)) return false; int h = (x % k + k) % k; m[x] = 0; for (int i = 0; i < g[h].size(); i++) { int w = g[h][i]; if (x == w) { res.push_back(w); return true; } if ((x - w) / k != x && trya((x - w) / k)) { res.push_back(w); return true; } } return false; } signed main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); int q, d, ma; cin >> k >> q >> d >> ma; for (int i = 1; i <= d; i++) { int x, y; cin >> x; y = (x % k + k) % k; g[y].push_back(x); } for (int jj = 0; jj < q; jj++) { int x, y; cin >> x; m.clear(); res.clear(); y = trya(x); if (y == 0) { cout << "IMPOSSIBLE" << '\n'; continue; } for (int i = 0; i < res.size(); i++) cout << res[i] << " \n"[i+1==(int)res.size()]; } }

Compilation message (stderr)

Main.cpp: In function 'bool trya(long long int)':
Main.cpp:13:23: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   13 |     for (int i = 0; i < g[h].size(); i++) {
      |                     ~~^~~~~~~~~~~~~
Main.cpp: In function 'int main()':
Main.cpp:47:27: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   47 |         for (int i = 0; i < res.size(); i++) cout << res[i] << " \n"[i+1==(int)res.size()];
      |                         ~~^~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...