AhmedAshraff

Untitled

Nov 24th, 2024 (edited)
37
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.41 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. #define boAshraf ios_base::sync_with_stdio(false); cin.tie(NULL);
  3. #define ll long long
  4. #define sz(s) (int)(s).size()
  5. #define all(s) (s).begin(),(s).end()
  6. using namespace std;
  7. void File();
  8. void sol();
  9. const int N=5001;
  10. int sum[N];
  11. vector<int> ans[N]{};
  12. vector<int>fs;
  13. set<int>rem;
  14. void dfs(int sq,int sb,int len){
  15.     if(sz(fs)>26)return;
  16.     int k=sq-sb;
  17.     auto it=rem.find(k);
  18.     if(sb && sum[k]>len && it!=rem.end()){
  19.         rem.erase(it);
  20.         sum[k]=len;
  21.         ans[k]=fs;
  22.     }
  23.     if(rem.empty())return;
  24.     for(int i=1;i<=N;i++){
  25.         int new_sq=sq*(i+1);
  26.         int new_sb=sb+i*(len+1);
  27.         k=new_sq-new_sb;
  28.         if(k>5000)break;
  29.         fs.emplace_back(i);
  30.         dfs(new_sq,new_sb,len+i);
  31.         fs.pop_back();
  32.     }
  33. }
  34. int main() {
  35.     boAshraf
  36.     File();
  37.     int t = 1;
  38. //    cin >> t;
  39.     while (t--) {
  40.         sol();
  41.     }
  42.     return 0;
  43. }
  44.  
  45. void sol() {
  46.     int n;
  47.     cin>>n;
  48.     vector<int>v;
  49.     for (int i = 0; i < n; ++i) {
  50.         int x;cin>>x;
  51.         rem.insert(x);
  52.         v.emplace_back(x);
  53.     }
  54.     memset(sum,'?',sizeof sum);
  55.     dfs(1,0,0);
  56.     for(auto it:v){
  57.         char c='a';
  58.         for(auto itt:ans[it]){
  59.             cout<<string(itt,c++);
  60.         }
  61.         cout<<'\n';
  62.     }
  63. }
  64. void File() {
  65. #ifndef ONLINE_JUDGE
  66.     freopen("input.txt", "r", stdin);
  67.     freopen("output.txt", "w", stdout);
  68. #endif
  69. }
Advertisement
Add Comment
Please, Sign In to add comment