제출 #702551

#제출 시각아이디문제언어결과실행 시간메모리
702551guagua0407JJOOII 2 (JOI20_ho_t2)C++17
100 / 100
11 ms2012 KiB
#include<bits/stdc++.h>
using namespace std;
#define f first
#define s second
#define ll long long
#define all(x) x.begin(),x.end()

int main(){
    ios::sync_with_stdio(0);
    cin.tie(0); cout.tie(0);
    int n,k;
    cin>>n>>k;
    string str;
    cin>>str;
    map<char,int> mp;
    mp['J']=0;
    mp['O']=1;
    mp['I']=2;
    vector<vector<int>> vec(3);
    for(int i=0;i<n;i++){
        vec[mp[str[i]]].push_back(i);
    }
    int ans=1e9;
    for(int i=0;i<=vec[0].size()-k;i++){
        int cur=vec[0][i+k-1];
        int pos=upper_bound(all(vec[1]),cur)-vec[1].begin();
        if(pos+k-1>=vec[1].size()) continue;
        cur=vec[1][pos+k-1];
        pos=upper_bound(all(vec[2]),cur)-vec[2].begin();
        if(pos+k-1>=vec[2].size()) continue;
        int fin=vec[2][pos+k-1];
        ans=min(ans,fin-vec[0][i]+1-3*k);
    }
    cout<<(ans==1e9?-1:ans);
    return 0;
}

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

ho_t2.cpp: In function 'int main()':
ho_t2.cpp:24:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   24 |     for(int i=0;i<=vec[0].size()-k;i++){
      |                 ~^~~~~~~~~~~~~~~~~
ho_t2.cpp:27:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   27 |         if(pos+k-1>=vec[1].size()) continue;
      |            ~~~~~~~^~~~~~~~~~~~~~~
ho_t2.cpp:30:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   30 |         if(pos+k-1>=vec[2].size()) continue;
      |            ~~~~~~~^~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...