Submission #896823

#TimeUsernameProblemLanguageResultExecution timeMemory
896823ace5JJOOII 2 (JOI20_ho_t2)C++17
100 / 100
20 ms3312 KiB
#include <bits/stdc++.h> using namespace std; #define int int64_t vector<vector<int>> b(26); int n; int go(int pos,int k,int c) { if(pos == n) return n; int ind = lower_bound(b[c].begin(),b[c].end(),pos)-b[c].begin() + k - 1; return (ind < b[c].size() ? b[c][ind] : n); } signed main() { ios_base::sync_with_stdio(false); cin.tie(0); int k; cin >> n >> k; string s; cin >> s; for(int j = 0;j < n;++j) { b[s[j]-'A'].push_back(j); } int ans = n+1; for(int j = 0;j < n;++j) { int lp = go(go(go(j,k,'J'-'A'),k,'O'-'A'),k,'I'-'A'); if(lp != n) { ans = min(ans,lp-j+1); } } cout << (ans == n+1 ? -1 : ans-k*3); return 0; }

Compilation message (stderr)

ho_t2.cpp: In function 'int64_t go(int64_t, int64_t, int64_t)':
ho_t2.cpp:16:17: warning: comparison of integer expressions of different signedness: 'int64_t' {aka 'long int'} and 'std::vector<long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   16 |     return (ind < b[c].size() ? b[c][ind] : n);
      |             ~~~~^~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...