40分求助
查看原帖
40分求助
470453
Fcr09楼主2021/3/7 20:39
#include <stdio.h>

int s[1005], a[1005];

int main() {
    int m, n;
    scanf("%d%d", &m, &n);
    for (int i = 0;i < n;i++) {
        scanf("%d", &a[i]);
    }

    int count = 0;
    int st = 0, ed = 0;
    for (int i = st;count<m && i < n;i++) {//第一次把内存读满或文章读完
        if (!s[a[i]]) count++;
        s[a[i]] = 1;
        ed++;
    }

    while (ed < n) {
        if (s[a[ed]]) {//内容已查
            ed++;
        }
        else {//内容未查
            count++;
            s[a[ed]] = 1;
            s[a[st]] = 0;
            while (!s[a[st]]) st++;
        }
    }

    printf("%d", count);
    return 0;
}
2021/3/7 20:39
加载中...