Korotkodul

CF_B. Зеркало в строке_послать_когда_откроется_дорешка

Dec 29th, 2021 (edited)
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.04 KB | None | 0 0
  1. #include <iostream>
  2. #include <cmath>
  3. #include <vector>
  4. #include <queue>
  5. #include <algorithm>
  6. #include <string>
  7. #include <stack>
  8. #include <set>
  9. #include <map>
  10. #define pii pair <int,int>
  11. using namespace std;
  12. using ll = long long;
  13. using ld = long double;
  14. void cv(vector <int> &v){
  15.     for (auto x: v) cout<<x<<' ';
  16.     cout<<"\n";
  17. }
  18.  
  19. void cvs(vector <string> v){
  20.     for (auto x: v) cout<<x<<' ';
  21.     cout<<"\n";
  22. }
  23.  
  24. bool les(string a, string b){
  25.     //cout<<"a b = "<<a<<" "<<b<<"\n";
  26.     bool r = 0;
  27.     if (a < b || a == b && a.size() < b.size()){
  28.         return 1;
  29.     }
  30.     else if (a == b) return 0;
  31.     else {
  32.         int ai=a.size()-1, bi=b.size()-1;
  33.         while (ai >= 0 && bi >= 0){//cout<<"GO\n";
  34.             a += a[ai];
  35.             b += b[bi];
  36.             //cout<<"ai bi = "<<ai<<' '<<bi<<"\n";
  37.             //cout<<"a b = "<<a<<' '<<b<<"\n";
  38.             if (a < b){//cout<<"a < b\n";
  39.                 r = 1;
  40.                 break;
  41.             }
  42.             else if (b > a){//cout<<"b >= a\n";
  43.                 r = 0;
  44.                 break;
  45.             }
  46.             else{//cout<<"NEXT\n";
  47.                ai--;
  48.                bi--;
  49.                //cout<<"ai bi = "<<ai<<' '<<bi<<"\n";
  50.                if (ai < 0 || bi < 0) break;
  51.             }
  52.  
  53.         }
  54.     }
  55.     //cout<<"DONE\n";
  56.     return r;
  57. }
  58.  
  59. int main()
  60. {
  61.     ios::sync_with_stdio(0);
  62.     cin.tie(0);
  63.     cout.tie(0);
  64.     int t=1,n=1e5;
  65.     //cin>>t;
  66.     char l='x';
  67.     for (int i=0;i<t;++i){
  68.         //cin>>n;
  69.         string s="";
  70.         string mn = "";
  71.         for (int j = 0;j<(n+1)/2;++j){
  72.             mn += 'z';
  73.         }
  74.         for (int j=0;j<n;++j){
  75.             //cin>>l;
  76.             //cout<<"J = "<<j<<"\n";
  77.             s += l;
  78.             if ( les(s, mn) ){
  79.                 mn = s;
  80.                 //cout<<"mn = "<<mn<<"\n";
  81.             }
  82.         }
  83.  
  84.         for (int i = mn.size()-1; i >= 0;--i){
  85.                 //cout<<"i = "<<i<<"\n";
  86.             mn += mn[i];
  87.         }
  88.         cout<<mn<<"\n";
  89.     }
  90. }
  91. /*
  92. 10
  93. zdbaaaaabbbde
  94. zdbaabdz
  95. */
  96.  
Add Comment
Please, Sign In to add comment