結果
問題 | No.2930 Larger Mex |
ユーザー |
|
提出日時 | 2024-10-12 15:21:34 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 326 ms / 2,000 ms |
コード長 | 658 bytes |
コンパイル時間 | 1,671 ms |
コンパイル使用メモリ | 171,032 KB |
実行使用メモリ | 8,064 KB |
最終ジャッジ日時 | 2024-10-12 15:21:55 |
合計ジャッジ時間 | 18,179 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 50 |
ソースコード
#include<bits/stdc++.h> using namespace std; #define int long long signed main() { int n,m; cin >> n >> m; vector<int> a(n); int s = 200000; for(int i = 0; i < n; i++) cin >> a[i]; vector<int> ans(n+2,0); vector<int> b(s+1,0); int r = 0; int c = 0; if(m == 0) { for(int i = n; i > 0; i--) cout << i << endl; return 0; } for(int i = 0; i < n; i++) { while(c < m) { if(r == n) break; b[a[r]]++; if(b[a[r]] == 1 && a[r] < m) c++; r++; } if(r == n && c < m) break; ans[r-i]++; ans[n-i+1]--; b[a[i]]--; if(b[a[i]] == 0 && a[i] < m) c--; } for(int i = 1; i <= n; i++) { ans[i]+=ans[i-1]; cout << ans[i] << endl; } }