- P128's solution
P128's Solution
- 2025-9-14 20:56:04 @
用前缀和维护五个答案即可。
#include <bits/stdc++.h>
using namespace std;
int a[1000012][5];
int main()
{
string s;
cin >> s;
int n = s.size();
s = ' ' + s;
for (int i = 1; i <= n; i++)
{
if (s[i] == 'l') a[i][0] = 1;
if (s[i] == 'u') a[i][1] = 1;
if (s[i] == 'o') a[i][2] = 1;
if (s[i] == 'g') a[i][3] = 1;
if (s[i] == 'u' && s[i - 1] == 'u') a[i][4] = 1;
}
for (int i = 1; i <= n; i++)
for (int j = 0; j <= 4; j++)
a[i][j] += a[i - 1][j];
int q;
cin >> q;
while (q--)
{
int l, r;
cin >> l >> r;
cout << a[r][0] - a[l - 1][0] << ' ';
cout << a[r][1] - a[l - 1][1] << ' ';
cout << a[r][2] - a[l - 1][2] << ' ';
cout << a[r][3] - a[l - 1][3] << ' ';
cout << a[r][4] - a[l][4] << endl;
}
return 0;
}