题解:P1753 矩阵链排序问题
kkkcskkk
·
·
题解
#include<bits/stdc++.h>
using namespace std;
string s;
int i;
bool flag_zero,flag_fu,flag_jw;
signed main(){
cin>>s;
for(i=0;s[i];i++)
if(s[i]=='.')break;
if(i==s.length()){
cout<<s<<'.';
for(int i=1;i<=12;i++)cout<<'0';
return 0;
}
if(s[0]=='0')flag_zero=true;
if(s[0]=='-')s[0]='0',flag_fu=true;
for(int j=1;j<=14;j++)s+='0';
if(s[i+13]>='5')s[i+12]++;
for(int j=i+12;j>i;j--)if(s[j]>'9')s[j]='0',s[j-1]++;
if(s[i]>'.')s[i]='.',s[i-1]++;
for(;i>=0;i--)if(s[i]>'9'){
if(i==0)flag_jw=true;
else s[i-1]++;
s[i]='0';
}
if(flag_fu)cout<<'-';
if(flag_jw)cout<<"10";
else if(flag_zero)cout<<'0';
for(i=(s[0]=='0');s[i]!='.';i++)cout<<s[i];
cout<<'.';
for(int j=1;j<=12;j++)cout<<s[i+j];
}