func_code_string: #include <bits/stdc++.h>   using namespace std;   char buf[200010];   char a[200010];   int n, t;   int l;   int digp;   set<int> s;   int main() {     scanf( %d%d , &n, &t);     scanf( %s , buf);     for (int i = n - 1; 0 <= i; --i) {       if (buf[i] ==  . ) {         digp = n - 1 - i;         continue;       }       a[l++] = buf[i];     }     for (int i = l; i <= 200005; ++i) a[i] =  0 ;     for (int i = 0; a[i]; ++i) {       if (a[i] ==  . ) continue;       if (a[i] >=  5  && i < digp) s.insert(i);     }     int clear_until = 0;     for (; t--;) {       if (s.empty()) break;       int pt = *--s.end();       s.clear();       clear_until = max(clear_until, pt);       a[pt] =  0 ;       for (int i = pt + 1; a[i]; ++i) {         if (a[i] ==  9 ) {           a[i] =  0 ;         } else {           ++a[i];           if (a[i] >=  5  && i < digp) s.insert(i);           break;         }       }     }     for (int i = 0; i < clear_until; ++i) a[i] =  0 ;     int last_exist = digp;     for (int i = 0; i < digp; ++i)       if (a[i] !=  0 ) {         last_exist = min(last_exist, i);       }     bool started = false;     for (int i = 200005; last_exist <= i; --i) {       if (a[i] >  0 ) {         started = true;       }       if (started) putchar(a[i]);       if (i == digp) {         if (last_exist < i) {           if (!started) putchar( 0 );           putchar( . );           started = true;         } else {           break;         }       }     }     return 0;   }   