2012-12-26 21:39:01Morris

[UVA] 12583 - Memory Overflow

題目意思:
這個人只能記住前 k 天的人,而他每天只會遇到一個人,
如果不認識的話,他會把他記住,但是在 k 天後遺忘,
如果再次遇到的話,就在延長時間。
問 他有幾天可以認識到他認識的人。

// 英文原題就不方便複製了

#include <stdio.h>

int main() {
    int t, cases = 0, n, k;
    char d[505];
    scanf("%d", &t);
    while(t--) {
        scanf("%d %d", &n, &k);
        scanf("%s", d);
        int r[26] = {}, cnt = 0, i;
        for(i = 0; i < 26; i++)
            r[i] = -0xfff;
        for(i = 0; i < n; i++) {
            if(i-r[d[i]-'A'] <= k)
                cnt++;
            r[d[i]-'A'] = i;
        }
        printf("Case %d: %d\n", ++cases, cnt);
    }
    return 0;
}