Submission #831430

#TimeUsernameProblemLanguageResultExecution timeMemory
831430MularstyleJJOOII 2 (JOI20_ho_t2)C++14
100 / 100
7 ms2472 KiB
#include <bits/stdc++.h> using namespace std; char s[200008]; int qs[200008]; int main() { int n, k; cin>>n>>k; cin>>s+1; n=strlen(s+1); vector<int> js; vector<int> is; for(int i = 1; i<= n; i++) { if(s[i] == 'J') js.push_back(i); else if(s[i] == 'O') qs[i] = 1; else is.push_back(i); qs[i] += qs[i-1]; } int mn = INT_MAX; int cur = 0; for(int j = k-1; j< js.size(); j++) { while(cur+k-1< is.size() && qs[is[cur]-1]-qs[js[j]]< k) cur++; if(cur+k-1< is.size() && qs[is[cur]-1]-qs[js[j]]>= k) { mn = min(mn, is[cur+k-1]-js[j-k+1]+1); } } if(mn == INT_MAX) cout<<"-1\n"; else cout<<mn-3*k; }

Compilation message (stderr)

ho_t2.cpp: In function 'int main()':
ho_t2.cpp:12:8: warning: suggest parentheses around '+' inside '>>' [-Wparentheses]
   12 |  cin>>s+1;
      |       ~^~
ho_t2.cpp:29:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   29 |  for(int j = k-1; j<  js.size(); j++)
      |                   ~^~~~~~~~~~~~
ho_t2.cpp:31:16: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   31 |   while(cur+k-1< is.size() && qs[is[cur]-1]-qs[js[j]]< k)
      |         ~~~~~~~^~~~~~~~~~~
ho_t2.cpp:34:13: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   34 |   if(cur+k-1< is.size() && qs[is[cur]-1]-qs[js[j]]>= k)
      |      ~~~~~~~^~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...