제출 #1155235

#제출 시각아이디문제언어결과실행 시간메모리
1155235trandangquangJJOOII 2 (JOI20_ho_t2)C++20
100 / 100
5 ms4368 KiB
#include<bits/stdc++.h>
using namespace std;

const int N=2e5+5;

int n,k,c[N][3];
string s;
vector<int> t[3];

int main(){
    if(fopen("test.inp","r")){
        freopen("test.inp","r",stdin);
        freopen("test.out","w",stdout);
    }
    cin.tie(0)->sync_with_stdio(0);

    cin>>n>>k>>s;
    s=" "+s;

    for(int i=n; i>=1; --i){
        if(s[i]=='J'){
            t[0].emplace_back(i);
        }
        else if(s[i]=='O'){
            t[1].emplace_back(i);
        }
        else{
            t[2].emplace_back(i);
        }
        for(int j=0; j<=2; ++j){
            if((int)t[j].size()>=k){
                c[i][j]=t[j][(int)t[j].size()-k];
            }
            else{
                c[i][j]=n+1;
            }
        }
    }
    int res=1e9;
    for(int i=1; i<=n; ++i){
        int ej=c[i][0],
            eo=c[ej+1][1],
            ei=c[eo+1][2];

        if(ej>=n||eo>=n||ei>n) continue;
        res=min(res,(ei-i+1)-k*3);

    }

    if(res==(int)1e9) cout<<"-1\n";
    else cout<<res<<'\n';
}

컴파일 시 표준 에러 (stderr) 메시지

ho_t2.cpp: In function 'int main()':
ho_t2.cpp:12:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   12 |         freopen("test.inp","r",stdin);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~
ho_t2.cpp:13:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   13 |         freopen("test.out","w",stdout);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...