본문 바로가기

백준

6503번 망가진 키보드 푸는 중

#include <iostream>
#include <algorithm>
#include <vector>
#include <string>
#include <functional>
#include <string>
#include <queue>
#include <deque>
#include <stack>
#include <set>
#include <map>
#include <cmath>
#include <cstring>
#include <bitset>
#include <stdio.h>
#include <math.h>
#include <sstream>

#define xx first
#define yy second
#define all(x) (x).begin(), (x).end()
#define MAXV 987654321

using namespace std;
using i64 = long long int;
using ii = pair<int, int>;
using iis = pair<int, string>;
using ii64 = pair<i64, i64>;
using iii = tuple<int, int, int>;

int _arr[400];
int* arr = _arr + 200;

int countAlphabet() {
    int count = 0;
    for (int i = 0;  i < 400; i++) {
        if (_arr[i] > 0)
            count++;
    }
    return count;
}

void printVector() {
    for (int i = 97;  i < 128; i++) {
        printf("%d ", arr[i]);
    }
    printf("\n");
}

int main() {
    int m;
    
    while (cin >> m) {
        if (m == 0)
            break;
        
        string s;
        getline(cin, s);
        getline(cin, s);
        
        int r = 0;
        int ans = 0;
        int n = s.size();
        for (int l = 0; l < n; l++) {
            r = max(l, r);
            while (r < n && countAlphabet() <= m) {
                printVector();
                arr[s[r]]++;
                r++;
            }
            
            ans = max(ans, r - l + 1);
            printf("%d\n", ans);
            arr[s[l]]--;
        }
        
        printf("%d\n", ans);
    }
    return 0;
}

'백준' 카테고리의 다른 글

13019 A를 B로  (0) 2022.12.17
12915 대회 개최  (0) 2022.12.17
14217 그래프 탐색  (0) 2022.09.24
2992 크면서 작은 수  (0) 2022.08.27
11995 Fenced In (Gold) [미완]  (0) 2022.08.24