Submission #446653

#TimeUsernameProblemLanguageResultExecution timeMemory
446653RGBBWeird Numeral System (CCO21_day1problem2)C++14
25 / 25
977 ms1180 KiB
#include <iostream> #include <bits/stdc++.h> typedef long long ll; using namespace std; const int MAXD=5005; int k,q,d,m,coef[MAXD]; vector<int>outp; unordered_map<ll,bool>memo; bool solve(ll v){ if(memo.find(v)!=memo.end())return memo[v]; memo[v]=false; for(int i=0;i<d;i++){ if(v==coef[i]){ outp.push_back(coef[i]); return memo[v]=true; } if((v-coef[i])%k!=0)continue; if((v-coef[i])/k!=v&&solve((v-coef[i])/k)){ outp.push_back(coef[i]); return memo[v]=true; } } return memo[v]; } int main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); cin>>k>>q>>d>>m; for(int i=0;i<d;i++)cin>>coef[i]; for(int i=0;i<q;i++){ ll inp; cin>>inp; outp.clear(); memo.clear(); if(solve(inp)){ for(int j=0;j<outp.size()-1;j++)cout<<outp[j]<<" "; cout<<outp.back()<<"\n"; } else cout<<"IMPOSSIBLE\n"; } }

Compilation message (stderr)

Main.cpp: In function 'int main()':
Main.cpp:36:26: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   36 |             for(int j=0;j<outp.size()-1;j++)cout<<outp[j]<<" ";
      |                         ~^~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...