#牛客春招刷题训练营# + 链接
显然最终的字母还是原串的字母,只是重复了很多遍
维护一下原串每个字母每次操作后重复多少遍就好啦
#include <bits/stdc++.h>
using namespace std;
const int N = 1024;
char s[N];
int c[N];
int main() {
int n, q, l, r;
scanf("%d%d", &n, &q);
scanf("%s", s);
vector<int> ve(n, 1);
while (q--) {
scanf("%d%d", &l, &r);
int pre = 0, now = 0;
for (int i = 0; i < n && pre <= r; i++) {
now = pre + ve[i];
if (now < l) {
pre = now;
continue;
}
ve[i] += min(r, now) - max(pre + 1, l) + 1;
pre = now;
}
}
for (int i = 0; i < n; i++) {
for (int j = 0; j < ve[i]; j++) putchar(s[i]);
}
return 0;
}



京公网安备 11010502036488号