제출 #1135565

#제출 시각아이디문제언어결과실행 시간메모리
1135565UnforgettableplModern Machine (JOI23_ho_t5)C++20
15 / 100
44 ms328 KiB
#include <bits/stdc++.h>
using namespace std;

#define int long long

int32_t main() {
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    int n,m;
    cin >> n >> m;
    vector<int> C(n+1);
    for(int i=1;i<=n;i++) {
        char c;cin>>c;
        if(c=='R')C[i]=1;
    }
    vector<int> A(m+1);
    for(int i=1;i<=m;i++)cin>>A[i];
    auto simulate = [&](int x) {
        int rightFace = 0;
        for(int i=1;i<x;i++)if(C[i])rightFace++;
        int leftFace = 0;
        for(int i=x+1;i<=n;i++)if(C[i]==0)leftFace++;
        // right exit
        if(leftFace<=rightFace) {
            int idx = x;
            if(leftFace)for(int i=x-1;i;i--) {
                if(C[i])leftFace--;
                if(leftFace==0) {
                    idx = i;
                    break;
                }
            }
            for(int i=idx;i<=n;i++)C[i]=0;
        } else {
            int idx = x;
            rightFace++;
            for(int i=x+1;i;i++) {
                if(C[i]==0)rightFace--;
                if(rightFace==0) {
                    idx = i;
                    break;
                }
            }
            for(int i=1;i<=idx;i++)C[i]=1;
        }
    };
    int Q,L,R;
    cin >> Q >> L >> R;
    for(int i=L;i<=R;i++)simulate(A[i]);
    int ans = 0;
    for(int i=1;i<=n;i++)if(C[i])ans++;
    cout << ans << '\n';
}
#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...