Submission #1230907

#TimeUsernameProblemLanguageResultExecution timeMemory
1230907toast12Lollipop (POI11_liz)C++20
100 / 100
1228 ms22512 KiB
#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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...