Run ID 作者 问题 语言 测评结果 分数 时间 内存 代码长度 提交时间
74195 陈路垚 听音乐 C++ 通过 100 11 MS 1760 KB 844 2023-05-20 17:24:49

Tests(10/10):


#include <stdio.h> #define N 100005 int n, m, i, j, k, p, ans, a[N], c[N], r[N]; int main() { scanf("%d%d", &n, &m); for (i = p = 1; i <= m; i++) { scanf("%d", &a[i]); if (++c[a[i]] > 1) { while (1) { r[p] = i; if (--c[a[p++]] == 1) { break; } } // 预处理从p往右扩展最远的位置 } } while (p < i) { r[p++] = i + n; } for (i = 0; i < n; i++) { if (r[1] - 1 < n - i) { continue; } for (j = n - i + 1; j <= m; j += n) { if (r[j] - j < n) { break; } } if (j > m) { ans++; } } printf("%d\n", ans); return 0; }


测评信息: