求助!!!T307847 Reverse and Rotate
  • 板块题目总版
  • 楼主majiatao
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/1/14 16:43
  • 上次更新2024/1/14 16:46:31
查看原帖
求助!!!T307847 Reverse and Rotate
1001852
majiatao楼主2024/1/14 16:43

样例已过 三个WA,七个TLE!!

#include<bits/stdc++.h>
#define ll long long
using namespace std;
char a[100000000+5],c,d,e,ans[100000000+5];
string b;
ll n,x,lena;
int main()
{	
	cin>>b;
	lena=b.size();
	for(ll i=0;i<=lena;i++)
		a[i]=b[i];
	cin>>n;
	for(ll i=1;i<=n;i++)
	{
		cin>>c;
		if(c=='<')
		{
			cin>>x;
			x=x%lena;
			for(ll i=0;i<x;i++) ans[i]=a[i];
			for(ll i=x;i<lena;i++) a[i-x]=a[i];
			for(ll i=x+1;i<lena;i++) a[i]=ans[i-x-1];
		}
		else if(c=='>')
		{
			cin>>x;
			x=x%lena;
			for(ll i=0;i<lena;i++) ans[i]=a[i];
			for(ll i=lena-x-1;i>=0;i--) a[i+x]=ans[i];
			for(ll i=0;i<x;i++) a[i]=ans[lena-x+i];
		}
		else
		{
			cin>>d>>e;
			reverse(a,a+lena);
		}
	}
	for(int i=0;i<lena;i++) cout<<a[i];
	return 0;
}
2024/1/14 16:43
加载中...