有佬帮忙看看为什么错吗?只ac了五号点
查看原帖
有佬帮忙看看为什么错吗?只ac了五号点
1104369
LSXing楼主2024/1/14 19:26

```~~~~
#include <iostream>
#include <cstring>
#include <algorithm>
#include <cmath>
using namespace std;
long long len;
char a[10000000], mm[10], T;
bool flag = 1;
int main() {
	long long l=0, r, n, zz;
	cin >> a;
	len = strlen(a);
	r = len - 1;
	cin >> n;
	while (n--) {
		cin >> T;
		if (T == 'r') {
			cin >> mm;
			if (flag) flag = 0;
			else flag = 1;
		} else {
			cin >> zz;
			zz %= len;
			if (flag) {
				if (T == '<') {
					l += zz, r += zz;
					while(l>len-1) l-=len,r-=len;
				}
				else{
					l -= zz, r -= zz;
					while(r<0) l+=len,r+=len;
				} 
			}
			else{
				if (T == '<') {
					l -= zz, r -= zz;
					while(r<0) l+=len,r+=len;
				}
				else{
					l += zz, r += zz;
					while(l>len-1) l-=len,r-=len;
				} 
			}
		}
		long long zz1 = min(len - 1, r), zz2 = max(l - l, l);
		if (flag) {
			if (l < 0) for (long long N = r + 1; N <= len + 1; N++) printf("%c", a[N]);
			for (long long N = zz2; N <= zz1; N++) printf("%c", a[N]);
			if (r > len - 1) for (long long N = l - 1; N >= 0; N--) printf("%c", a[N]);
		} else {
			if (r > len - 1) for (long long N = 0; N <= l - 1; N++) printf("%c", a[N]);
			for (long long N = zz1; N >= zz2; N--) printf("%c", a[N]);
			if (l < 0) for (long long N = len + 1; N >=r+1 ; N--) printf("%c", a[N]);
		}
	}
	return 0;
}
2024/1/14 19:26
加载中...