Submission #702551

#TimeUsernameProblemLanguageResultExecution timeMemory
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; }

Compilation message (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...