제출 #1232087

#제출 시각아이디문제언어결과실행 시간메모리
1232087yogesh_sane새로운 문제 (POI11_liz)C++20
8 / 100
345 ms19772 KiB
#include <iostream> #include <vector> #include <algorithm> using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(0); int n, m; cin >> n >> m; string s; cin >> s; vector<int>nx1(n+1, n+1), prefix_sum(n+1); int next1 = n+1; for(int i = n-1; i >= 0; i--){ if(s[i] == 'W') next1 = i+1; nx1[i+1] = next1; } for(int i = 1; i <= n; i++) prefix_sum[i] = prefix_sum[i-1] + (s[i-1] == 'W' ? 1 : 2); while(m--){ int k; cin >> k; auto it = lower_bound(prefix_sum.begin(), prefix_sum.end(), k); int r = it-prefix_sum.begin(); if(it == prefix_sum.end()){ cout << "NIE" << '\n'; }else if(*it == k){ cout << 1 << ' ' << r << '\n'; }else{ //*it is k+1 if(s[0] == 'W'){ cout << 2 << ' ' << r << '\n'; }else{ int mv = min(nx1[1]-1, nx1[r]-r); if(r+mv > n) cout << "NIE" << '\n'; else cout << 1+mv << ' ' << r+mv << '\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...