Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- string str;
- int main(){
- int k;
- scanf("%d", &k);
- cin >> str;
- int l = str.size();
- vector <int> T, P;
- for(int i = 0; i < l; i ++){
- if(str[i] == 'T') T.push_back(i);
- else P.push_back(i);
- }
- int cnt = 0;
- int t = 0, p = 0;
- int Ts = T.size(), Ps = P.size();
- while(t < Ts and p < Ps){
- while(abs(P[p] - T[t]) > k and p < Ps) {
- if(P[p] < T[t]) p ++;
- else t ++;
- }
- if(p >= Ps) break;
- cnt ++;
- p ++;
- t ++;
- }
- printf("%d", cnt);
- return 0;
- }
- /**
- ex: k = 1
- str = "TTPPTP"
- T = {0, 1, 4}
- P = {2, 3, 5}
- ถ้าตัวที่ไกลที่สุดจับได้ให้จับ จับไม่ได้ให้เลื่อนตำแหน่ง
- เพราะ ตำแหน่งของ P, T เรียงจาก น้อย(ใกล้)ไปมาก(ไกล)อยู่แล้ว
- **/
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement