#include <bits/stdc++.h>
using namespace std;
int main() {
int n, m;
cin >> n >> m;
vector<int> v(n+1);
for (int i = 1; i <= n; i++) {
char c;
cin >> c;
if (c == 'T') v[i] = 2;
else v[i] = 1;
}
vector<int> ps(n+1);
for (int i = 1; i <= n; i++) ps[i] = ps[i-1]+v[i];
vector<int> a(n+2, n+1);
for (int i = n; i > 0; i--) {
if (v[i] == 1) a[i] = i;
else a[i] = a[i+1];
}
while (m--) {
int k;
cin >> k;
auto it = lower_bound(ps.begin(), ps.end(), k);
if (it == ps.end()) {
cout << "NIE\n";
continue;
}
if (*it == k) {
cout << 1 << ' ' << (it-ps.begin()) << '\n';
continue;
}
int i = it-ps.begin();
int l = min(a[1], a[i]-i+1);
int r = l+i-1;
if (r > n) cout << "NIE\n";
else if (ps[r]-ps[l-1] == k) cout << l << ' ' << r << '\n';
else cout << l+1 << ' ' << r << '\n';
}
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |