95分
R153740580 #08 WA
代码如下:
#include<bits/stdc++.h>
using namespace std;
string fz(string y,int begin,int end);
int main(){
string num;
int l=-1;
cin>>num;
int size=num.size();
bool flag=0;
for(int i=0;i<size;i++){
if(num[i]=='.'){
num=fz(num,0,i)+'.'+fz(num,i+1,size);
l=2;
flag=!flag;
break;
}
if(num[i]=='/'){
num=fz(num,0,i)+'/'+fz(num,i+1,size);
l=3;
flag=!flag;
break;
}
}
if(!flag){
num=fz(num,0,size);
l=(num[0]=='%'?4:1);
}
if(l==1){
bool flag=0;
for(int i=0;i<size;i++){
if(!flag&&num[i]=='0') continue;
if(!flag&&num[i]!='0') flag=!flag;
cout<<num[i];
}
if(!flag) cout<<0;
}
if(l==2){
bool flag=0;
int i=0;
for(;num[i]!='.';i++){
if(!flag&&num[i]=='0') continue;
if(!flag&&num[i]!='0') flag=!flag;
cout<<num[i];
}
if(!flag) cout<<0;
cout<<'.';
i+=1;
flag=0;
for(;i<size;i++){
if(num[i]=='0'){
for(int j=i;j<size;j++){
if(num[j]!='0'){
flag=1;
break;
}
}
if(!flag) break;
cout<<'0';
}
else cout<<num[i];
}
if(num[i-1]=='.') cout<<'0';
}
if(l==3){
bool flag=0;
int i=0;
for(;num[i]!='/';i++){
if(!flag&&num[i]=='0') continue;
if(!flag&&num[i]!='0') flag=!flag;
cout<<num[i];
}
if(!flag) cout<<0;
cout<<'/';
i+=1;
flag=0;
for(;i<size;i++){
if(!flag&&num[i]=='0') continue;
if(!flag&&num[i]!='0') flag=!flag;
cout<<num[i];
}
}
if(l==4){
bool flag=0;
for(int i=1;i<size;i++){
if(!flag&&num[i]=='0') continue;
if(!flag&&num[i]!='0') flag=!flag;
cout<<num[i];
}
if(!flag) cout<<0;
cout<<'%';
}
return 0;
}
string fz(string y,int begin,int end){
string b="";
for(int i=end-1;i>=begin;i--){
b+=y[i];
}
b+="\0";
return b;
}