# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
1102496 | 2024-10-18T08:04:17 Z | nathan4690 | Weird Numeral System (CCO21_day1problem2) | C++17 | 4 ms | 25168 KB |
#include <bits/stdc++.h> #define ll long long #define ld long double #define el cout << '\n' #define f1(i,n) for(int i=1;i<=n;i++) #define __file_name "" using namespace std; const ll maxn = 1e6+5, inf=1e18; int k,q,d,m,a[maxn]; ll n; vector<ll> mp[maxn], ans; unordered_map<ll, bool> flag; bool check(ll n){ if(flag.find(n) != flag.end()) return false; flag[n] = true; ll v = (n % k + k) % k; for(int item: mp[v]){ if(item == n){ ans.push_back(item); return 1; }else if(check((n - item) / k)){ ans.push_back(item); return 1; } } return 0; } int main(){ ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); if(fopen(__file_name ".inp", "r")){ freopen(__file_name ".inp","r",stdin); freopen(__file_name ".out","w",stdout); } // code here cin >> k >> q >> d >> m; f1(i,d) { cin >> a[i]; mp[(a[i] % k + k) % k].push_back(a[i]); } while(q--){ cin >> n; flag.clear(); ans.clear(); if(check(n)){ // reverse(ans.begin(), ans.end()); for(ll item: ans) cout << item << ' '; el; }else cout << "IMPOSSIBLE\n"; } return 0; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 4 ms | 25168 KB | Expected integer, but "IMPOSSIBLE" found |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 4 ms | 25168 KB | Expected integer, but "IMPOSSIBLE" found |
2 | Halted | 0 ms | 0 KB | - |