Advertisement
Guest User

Untitled

a guest
Feb 19th, 2016
1,557
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.58 KB | None | 0 0
  1. // by Edvard
  2. #include <bits/stdc++.h>
  3.  
  4. #define forn(i, n) for (int i = 0; i < int(n); i++)
  5. #define ford(i, n) for (int i = int(n) - 1; i >= 0; i--)
  6. #define fore(i, l, r) for (int i = int(l); i < int(r); i++)
  7. #define correct(x, y, n, m) (0 <= (x) && (x) < (n) && 0 <= (y) && (y) < (m))
  8. #define all(a) (a).begin(), (a).end()
  9. #define sz(a) int((a).size())
  10. #define pb(a) push_back(a)
  11. #define mp(x, y) make_pair((x), (y))
  12. #define x first
  13. #define y second
  14.  
  15. using namespace std;
  16.  
  17. typedef long long li;
  18. typedef long double ld;
  19. typedef pair<int, int> pt;
  20.  
  21. template<typename X> inline X abs(const X& a) { return a < 0? -a: a; }
  22. template<typename X> inline X sqr(const X& a) { return a * a; }
  23.  
  24. const int INF = int(1e9);
  25. const li INF64 = li(1e18);
  26. const ld EPS = 1e-9, PI = 3.1415926535897932384626433832795;
  27.  
  28. const int N = 100100;
  29.  
  30. int n, k;
  31. char s[N];
  32.  
  33. inline bool read() {
  34.     if (!(cin >> n >> k)) return false;
  35.     assert(gets(s));
  36.     assert(gets(s));
  37.     return true;
  38. }
  39.  
  40. char t[N];
  41.  
  42. inline void solve() {
  43.     forn(i, n) {
  44.         int d1 = int(s[i] - 'a');
  45.         int d2 = 25 - d1;
  46.         if (d1 > d2) {
  47.             int v = min(d1, k);
  48.             t[i] = char(s[i] - v);
  49.             k -= v;
  50.         } else {
  51.             int v = min(d2, k);
  52.             t[i] = char(s[i] + v);
  53.             k -= v;
  54.         }
  55.     }
  56.     if (k) {
  57.         puts("-1");
  58.         return;
  59.     }
  60.     t[n] = 0;
  61.     puts(t);
  62. }
  63.  
  64. int main() {
  65. #ifdef SU1
  66.     assert(freopen("input.txt", "rt", stdin));
  67.     //assert(freopen("output.txt", "wt", stdout));
  68. #endif
  69.    
  70.     cout << setprecision(10) << fixed;
  71.     cerr << setprecision(5) << fixed;
  72.  
  73.     while (read()) {
  74.         solve();
  75.         //break;
  76.     }
  77.    
  78.     return 0;
  79. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement