#include <bits/stdc++.h>
using namespace std;
char tp;
stack<int>a;
stack<int>b;
char o = '0';
int length = 0;
int flag = 0;
int main() {
for (int i = 1;; i++) {
scanf("%c", &tp);
if (tp == '.' || tp == '/' || tp == '%')
o = tp;
else if (tp >= '0' && tp <= '9' && o != '0')
b.push(tp - '0');
else if (tp >= '0' && tp <= '9' && o == '0')
a.push(tp - '0');
else if (tp == '\n') {
if (o == '0')
length = i - 1;
break;
}
}
//#1
int x = length;
if (o == '0') {
for (int i = 1; i <= x; i++) {
flag = 0;
if (a.size() != 1 && a.top() == 0) {
a.pop();
length--;
flag++;
}
if (flag == 0)
break;
}
for (int i = 1; i <= length; i++) {
printf("%d", a.top());
a.pop();
}
return 0;
}
//#234
if (o != '0') {
char l = o;
if (l == '.' || l == '/') {
int length1 = a.size();
int length2 = b.size();
int x1 = length1;
for (int i = 1; i <= x1; i++) {
flag = 0;
if (a.size() != 1 && a.top() == 0) {
a.pop();
length1--;
flag++;
}
if (flag == 0)
break;
}
for (int i = 1; i <= length1; i++) {
printf("%d", a.top());
a.pop();
}
printf("%c", l);
int x2 = length2;
for (int i = 1; i <= x2; i++) {
flag = 0;
if (b.size() == 1 && b.top() == 0) {
cout << 0;
return 0;
} else if (b.size() != 1 && b.top() == 0) {
b.pop();
length2--;
flag++;
}
if (flag == 0)
break;
}
for (int i = 1; i <= length2; i++) {
if (b.size() == 1 && b.top() == 0)
break;
printf("%d", b.top());
b.pop();
}
return 0;
}
if (l == '%') {
int length = a.size();
int x = length;
for (int i = 1; i <= x; i++) {
flag = 0;
if (a.size() != 1 && a.top() == 0) {
a.pop();
length--;
flag++;
}
if (flag == 0)
break;
}
for (int i = 1; i <= length; i++) {
printf("%d", a.top());
a.pop();
}
printf("%c", l);
return 0;
}
}
return 0;
}
不开O2优化的时候全是TLE,并且内存占用基本上都在80M以上 开了O2优化之后之前TLE的部分点直接变成MLE了 输入样例和自己输几组数据都没有问题,返回值也都是0,时间也正常,请求大犇援助!!!!!