Submission #203642

#TimeUsernameProblemLanguageResultExecution timeMemory
203642osaaateiasavtnlJJOOII 2 (JOI20_ho_t2)C++14
100 / 100
42 ms7800 KiB
#include<bits/stdc++.h> using namespace std; #define int long long #define ii pair <int, int> #define app push_back #define all(a) a.begin(), a.end() #define bp __builtin_popcount #define ll long long #define mp make_pair #define f first #define s second #define Time (double)clock()/CLOCKS_PER_SEC const int N = 2e5 + 7; int n, k; string s; int num(char c) { if (c == 'J') return 0; else if (c == 'O') return 1; else return 2; } vector <int> pos[N]; int getk(int i, vector <int> &a) { auto t = lower_bound(all(a), i); int p = t - a.begin(); if (p + k - 1 >= a.size()) return -1; else return a[p + k - 1]; } signed main() { #ifdef HOME freopen("input.txt", "r", stdin); #else ios_base::sync_with_stdio(0); cin.tie(0); #endif cin >> n >> k >> s; for (int i = 0; i < n; ++i) pos[num(s[i])].app(i); int ans = N; for (int l = 0; l < n; ++l) { int t = l; for (int i = 0; i < 3; ++i) { t = getk(t, pos[i]); if (t == -1) break; } if (t != -1) ans = min(ans, t - l + 1 - 3 * k); } if (ans == N) cout << "-1\n"; else cout << ans << '\n'; }

Compilation message (stderr)

ho_t2.cpp: In function 'long long int getk(long long int, std::vector<long long int>&)':
ho_t2.cpp:31:19: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     if (p + k - 1 >= a.size())
         ~~~~~~~~~~^~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...