JOI本選過去問 第8回 日本情報オリンピック本選 一問目 IOIOI
やるだけ
ちょっと工夫しないとTLEなるのかな?
問題文はこちら
#include <cstdio> #include <algorithm> using namespace std; long n,m; long p = 0; char s[1000003]; int main(){ while(19){ long long ans = 0; scanf("%ld",&n); if(n == 0) break; scanf("%ld",&m); scanf("%s",s); for(int i = 0;i < m;i++){ if(s[i] != 'I'){ continue; }else{ int ren = 0; int ne = i+1,nene = i+2; while(nene < m){ if(s[ne] == 'O' && s[nene] == 'I'){ ren++; ne += 2; nene += 2; }else{ break; } } ans +=max(ren - n + 1,p); i = ne - 1; } } printf("%lld\n",ans); } }