站外题求解(悬棺)
  • 板块题目总版
  • 楼主WWhz11
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/12/28 21:40
  • 上次更新2024/12/28 21:55:40
查看原帖
站外题求解(悬棺)
1456568
WWhz11楼主2024/12/28 21:40

题目描述

一个数字精灵要和你玩数字变换游戏,这个数字变换游戏的规则是这样的:给定一个长度不超过 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;
}

显示输出超限,求教大佬该怎么改?

2024/12/28 21:40
加载中...