1 条题解
-
0
C :
#include "stdio.h" int dui[10000], num[10000]; int n, m,head,trail,sum; void work(int x) { int i; int number; sum = 0; head = 1; trail = 0; for (i = 0; i <= 1000; i++) { num[i] = 0; } for (i = 1; i <= x; i++) { scanf("%d", &number); if (num[number] == 0) { sum++; if (trail - head + 1 < m) { trail++; dui[trail] = number; num[number] = 1; } else { num[dui[head]] = 0; head++; trail++; dui[trail] = number; num[number] = 1; } } } printf("%d\n", sum); } void main() { int i; while (scanf("%d %d", &m, &n) != EOF) { work(n); } }
C++ :
#include <stdio.h> int main () { int n, m, a[1001], dir[1001], i, j; while(scanf("%d%d",&m,&n) != EOF) { int l = 0, r = -1, num = 0; for(i = 0 ; i < n ; i ++) { scanf("%d",&a[i]); for(j = l ; j <= r ; j ++) if(a[i] == dir[j]) break; if(j == r + 1) { if(r - l == m - 1) { l ++; r ++; dir[r] = a[i]; } else { r ++; dir[r] = a[i]; } num ++; } } printf("%d\n",num); } return 0; }
- 1
信息
- ID
- 1356
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者