hiho week 243 register

Ended

Participants:135

Verdict:Accepted
Score:100 / 100
Submitted:2019-03-01 14:51:13

Lang:G++

Edit
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <iostream>
#include <string>
#include <cmath>
#include <string.h>
using namespace std;
int main() {
    string input;
    cin >> input;
    
    int dict[256];
    memset(dict, 0, 256 * sizeof(int));
    
    int begin = 0, end = 0;
    int res = 0x3f3f3f3f;
    
    while (end < input.size()) {
        dict[input[end++]]++;
        while (begin < end && (dict['h'] > 2 || dict['i'] > 1 || dict['o'] > 1 || (input[begin] != 'h' && input[begin] != 'i' && input[begin] != 'o'))) {
            dict[input[begin++]]--;
        }
        if (dict['h'] == 2 && dict['i'] == 1 && dict['o'] == 1) {
            res = min(res, end - begin);
        }
    }
    
    cout << (res == 0x3f3f3f3f ? -1 : res) << endl;
    return 0;
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX