【題解】AtCoder ABC161E – Yutori

【題目敘述】https://atcoder.jp/contests/abc161/tasks/abc161_e

#include <iostream>
using namespace std;

int n, k, c, l[200005], r[200005];
string s;

int main() {
    cin >> n >> k >> c;
    cin >> s;
    int pre = -c-1, idx = 0;
    for (int i = 0; i < n; i++){
        if (s[i] == 'o' && i-pre > c){
            pre = i;
            l[idx] = i;
            idx++;
            if (idx == k) break;
        }
    }
    pre = n+c, idx = k-1;
    for (int i = n-1; i >= 0; i--){
        if (s[i] == 'o' && pre-i > c){
            pre = i;
            r[idx] = i;
            idx--;
            if (idx == -1) break;
        }
    }
    for (int i = 0; i < k; i++){
        if (l[i] == r[i]) cout << l[i]+1 << "\n";
    }
}

分享本文 Share with friends