题目描述
一个数字精灵要和你玩数字变换游戏,这个数字变换游戏的规则是这样的:给定一个长度不超过 10^6位的十进制数,小酷宝可以进行两种操作: 1 x:将当前数字乘以 10后加上一个不超过 9的单个数字 x。2:将当前数字整除以 10,如果当前数字>0,则可以进行此操作。 需要进行 q 次这样的操作,并计算出 q 次操作后的结果。
输入
第一行包含一个大整数 S,表示初始的十进制数,长度不超过 10^6 位。
第二行包含一个整数 q,表示操作的次数。
接下来的 q 行,每行包含一个操作指令,格式为 1 x 或 2,其中 x 是一个 0 到 9 之间的整数。
对于20% 的数据,1≤q≤100,在操作过程中数字 S≤2147483647 。
对于 40% 的数据,1≤q≤1000,在操作过程中数字 S≤9223372036854775807 。
对于 70% 的数据,1≤q≤10000,在操作过程中数字S 的长度不超过10^4。
对于 100% 的数据,1≤q≤1000000,在操作过程中数字 S 的长度不超过10^6
#include<bits/stdc++.h>
using namespace std;
string s,b;
int q,a;
int main(){
ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
cin>>s>>q;
while(q--){
cin>>a;
if(a==1){
cin>>b;
s+=b;
}else if(a==2&&s[0]>'0'){
string c="";
for(int i=0;i<s.size()-1;i++)c+=s[i];
s=c;
}
}
cout<<s;
return 0;
}
显示输出超限,求教大佬该怎么改?