1 条题解
-
0Tabing010102 (tabing) LV 0 MOD @ 2019-10-27 20:21:39
std
#include <cstdio> #include <set> #include <queue> using namespace std; const int maxn = 20000+10; int n, k, ans[maxn]; set<int> s; queue<int> q; int main() { scanf("%d%d", &n, &k); for(int i = 0; i < n; i++) { int t; scanf("%d", &t); if(s.count(t)) { continue; } else { if(q.size() < k) { s.insert(t); q.push(t); } else { int x = q.front(); q.pop(); s.erase(x); q.push(t); s.insert(t); } } } int cnt = -1; while(!q.empty()) { ans[++cnt] = q.front(); q.pop(); } printf("%d\n", cnt+1); for(int i = cnt; i >= 0; i--) printf("%d ", ans[i]); return 0; }
- 1
信息
- ID
- 1013
- 难度
- 9
- 分类
- (无)
- 标签
- (无)
- 递交数
- 3
- 已通过
- 2
- 通过率
- 67%
- 上传者