fork download
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. #define ll long long int
  4. const int MAX = 1e6+7;
  5.  
  6. bool check(ll m,string s){
  7.  
  8. int n = s.length();
  9. vector<ll> d(n+1);
  10. for(int i = n-1 ;i>=0;i--){
  11. d[i] = m%26;
  12. m/=26;
  13. }
  14.  
  15. string cmps = "";
  16. for(int i = 0;i<n;i++) cmps+=(d[i] + 'a');
  17. return cmps<=s;
  18. }
  19.  
  20. int solve(string s){
  21.  
  22. int ans = -1;
  23. ll l = 0,r = 1e18;
  24. while(l<=r){
  25. ll m = (l+r)/2;
  26. if(check(m,s)) ans = m, l = m+1;
  27. else r = m-1;
  28. }
  29.  
  30. return ans;
  31. }
  32.  
  33. int main(){
  34.  
  35. ios_base::sync_with_stdio(false);
  36. cin.tie(0); cout.tie(0);
  37.  
  38. int n; cin>>n;
  39. string s,t; cin>>s>>t;
  40. int l = solve(s),r = solve(t);
  41. cout<<l<<" "<<r<<'\n';
  42. int m = (l+r)/2;
  43.  
  44. vector<ll> d(n+1);
  45. for(int i = n-1 ;i>=0;i--){
  46. d[i] = m%26;
  47. m/=26;
  48. }
  49.  
  50. string res = "";
  51. for(int i = 0;i<n;i++) res+=(d[i] + 'a');
  52. cout<<res<<'\n';
  53.  
  54. return 0;
  55. }
Success #stdin #stdout 0s 4392KB
stdin
2
az
bf
stdout
-1160675423 -1102467761
mq