func_code_string: #include <bits/stdc++.h>   using namespace std;   int M = 1e9 + 7;   int incr(string &s) {     int i, n = s.length();     for (i = n - 1; i >= 0; --i) {       if (s[i] !=  9 ) {         s[i]++;         return 0;       }       s[i] =  0 ;     }     for (i = n - 1; i >= 0; --i) {       s[i] =  0 ;     }     s =  1  + s;     return 0;   }   int incr2(string &s, int t) {     while (t > 0) {       for (int i = s.length() - 1; i >= 0; --i) {         if (s[i] !=  9 ) {           s[i]++;           --t;           if (s[i] ==  5 ) {             if (i == 0) {               return 1;             }             s.pop_back();             break;           } else {             return 0;           }         } else {           s[i] =  0 ;           s.pop_back();           if (i == 0) {             return 1;           }         }       }     }     for (int i = s.length() - 1; i >= 0; --i) {       if (s[i] !=  9 ) {         s[i]++;         return 0;       }     }   }   int main() {     int i, n, t;     cin >> n >> t;     string s;     cin >> s;     int di = s.find( . );     string dpart = s.substr(0, di);     s = s.substr(di + 1, n - di - 1);     if (s[0] >=  5 ) {       incr(dpart);       cout << dpart;       return 0;     }     for (i = 0; i < s.length(); i++) {       if (s[i] >=  5 ) {         break;       }     }     if (i == s.length()) {       cout << dpart <<  .  << s;       return 0;     }     s = s.substr(0, i);     int c4 = 0;     for (i = s.length() - 1; i >= 0; --i) {       if (s[i] ==  4 ) {         c4++;       } else {         break;       }     }     if (c4 == 0) {       incr2(s, 0);       cout << dpart <<  .  << s;       return 0;     }     if (c4 == s.length() && t > c4) {       incr(dpart);       cout << dpart;       return (0);     }     cout << dpart <<  . ;     if (t <= c4) {       cout << s.substr(0, s.length() - t) <<  5 ;       return 0;     }     s[s.length() - c4 - 1]++;     cout << s.substr(0, s.length() - c4);     return 0;   }   