Submission #219574

#TimeUsernameProblemLanguageResultExecution timeMemory
219574MKopchevJJOOII 2 (JOI20_ho_t2)C++14
100 / 100
25 ms1908 KiB
#include<bits/stdc++.h> using namespace std; const int nmax=2e5+42; int n,k; vector<int> seen[3]; int ask(int pos,int where) { if(where==3)return pos; pos++; int nxt_seen=lower_bound(seen[where].begin(),seen[where].end(),pos)-seen[where].begin(); if(nxt_seen+k-1<seen[where].size())return ask(seen[where][nxt_seen+k-1],where+1); return 1e9; } int main() { scanf("%i%i",&n,&k); for(int i=1;i<=n;i++) { char c=getchar(); while(c!='J'&&c!='O'&&c!='I')c=getchar(); if(c=='J')seen[0].push_back(i); else if(c=='O')seen[1].push_back(i); else seen[2].push_back(i); } int output=n+1; for(auto start:seen[0]) output=min(output,ask(start-1,0)-start+1-3*k); if(output>n)printf("-1\n"); else printf("%i\n",output); return 0; }

Compilation message (stderr)

ho_t2.cpp: In function 'int ask(int, int)':
ho_t2.cpp:15:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     if(nxt_seen+k-1<seen[where].size())return ask(seen[where][nxt_seen+k-1],where+1);
        ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~
ho_t2.cpp: In function 'int main()':
ho_t2.cpp:20:10: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%i%i",&n,&k);
     ~~~~~^~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...