Submission #1662126
Source Code Expand
#include <bits/stdc++.h> #define REP(i,a,b) for(int i=(a);i<(b);i++) #define RREP(i,a,b) for(int i=(a);i>=(b);i--) typedef long long ll; typedef long double ld; using namespace std; const int INF=1e9, MOD=1e9+7; int n,m,dp[1000010]; string s; int main(){ cin >> n >> m >> s; REP(i,0,m) if(s[i]=='I') dp[i]=1; REP(i,0,m-1){ if(s[i]=='I'&&s[i+1]=='O') dp[i+1]=dp[i]+1; else if(s[i]=='O'&&s[i+1]=='I') dp[i+1]=(dp[i]?dp[i]+1:dp[i+1]); } int c=0; REP(i,0,m) if(s[i]=='I'&&dp[i]>=n*2+1) c++; cout << c << endl; return 0; }
Submission Info
Submission Time | |
---|---|
Task | A - IOIOI |
User | ecasdqina |
Language | C++14 (GCC 5.4.1) |
Score | 20 |
Code Size | 560 Byte |
Status | AC |
Exec Time | 43 ms |
Memory | 5252 KB |
Judge Result
Set Name | set01 | set02 | set03 | set04 | set05 | set06 | set07 | set08 | set09 | set10 | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Score / Max Score | 2 / 2 | 2 / 2 | 2 / 2 | 2 / 2 | 2 / 2 | 2 / 2 | 2 / 2 | 2 / 2 | 2 / 2 | 2 / 2 | ||||||||||||||||||||
Status |
|
|
|
|
|
|
|
|
|
|
Set Name | Test Cases |
---|---|
set01 | data1 |
set02 | data2 |
set03 | data3 |
set04 | data4 |
set05 | data5 |
set06 | data6 |
set07 | data7 |
set08 | data8 |
set09 | data9 |
set10 | data10 |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
data1 | AC | 1 ms | 256 KB |
data10 | AC | 43 ms | 5252 KB |
data2 | AC | 1 ms | 256 KB |
data3 | AC | 2 ms | 256 KB |
data4 | AC | 2 ms | 256 KB |
data5 | AC | 1 ms | 256 KB |
data6 | AC | 42 ms | 5252 KB |
data7 | AC | 21 ms | 2820 KB |
data8 | AC | 22 ms | 2820 KB |
data9 | AC | 42 ms | 5252 KB |