제출 #208288

#제출 시각아이디문제언어결과실행 시간메모리
208288jzhJJOOII 2 (JOI20_ho_t2)C++14
100 / 100
14 ms4352 KiB
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int main() {
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    ll n,i,x,y,k,ans=LLONG_MAX;
    cin>>n>>k;
    string s;
    cin>>s;
    deque<ll>d;
    ll J[n],I[n];
    J[0]=-1;
    for (i=0;i<n;i++){
        if (i!=0)J[i]=J[i-1];
        if (s[i]=='J'){
            d.push_back(i);
            while (d.size()>k)d.pop_front();
            if (d.size()==k)J[i]=d.front();
        }
    }
    d.clear();
    I[n-1]=-1;
    for (i=n-1;i>=0;i--){
        if (i!=n-1)I[i]=I[i+1];
        if (s[i]=='I'){
            d.push_back(i);
            while (d.size()>k)d.pop_front();
            if (d.size()==k)I[i]=d.front();
        }
    }
    d.clear();
    for (i=0;i<n;i++){
        if (s[i]=='O'){
            d.push_back(i);
            while (d.size()>k)d.pop_front();
            if (d.size()==k&&I[i]!=-1&&J[d.front()]!=-1){
                ans=min(ans,I[i]-J[d.front()]+1-k*3);
            }
        }
    }
    if (ans==LLONG_MAX)cout<<"-1\n";
    else cout<<ans<<'\n';
}

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

ho_t2.cpp: In function 'int main()':
ho_t2.cpp:18:28: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
             while (d.size()>k)d.pop_front();
                    ~~~~~~~~^~
ho_t2.cpp:19:25: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
             if (d.size()==k)J[i]=d.front();
                 ~~~~~~~~^~~
ho_t2.cpp:28:28: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
             while (d.size()>k)d.pop_front();
                    ~~~~~~~~^~
ho_t2.cpp:29:25: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
             if (d.size()==k)I[i]=d.front();
                 ~~~~~~~~^~~
ho_t2.cpp:36:28: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
             while (d.size()>k)d.pop_front();
                    ~~~~~~~~^~
ho_t2.cpp:37:25: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
             if (d.size()==k&&I[i]!=-1&&J[d.front()]!=-1){
                 ~~~~~~~~^~~
ho_t2.cpp:7:12: warning: unused variable 'x' [-Wunused-variable]
     ll n,i,x,y,k,ans=LLONG_MAX;
            ^
ho_t2.cpp:7:14: warning: unused variable 'y' [-Wunused-variable]
     ll n,i,x,y,k,ans=LLONG_MAX;
              ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...