結果
問題 | No.2210 equence Squence Seuence |
ユーザー |
![]() |
提出日時 | 2023-02-10 21:53:57 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 118 ms / 2,000 ms |
コード長 | 910 bytes |
コンパイル時間 | 3,611 ms |
コンパイル使用メモリ | 252,932 KB |
最終ジャッジ日時 | 2025-02-10 12:38:41 |
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 25 |
ソースコード
#include<bits/stdc++.h>#include<atcoder/all>using namespace std;using namespace atcoder;typedef modint998244353 mint;typedef long long ll;int main(){int n, k; cin >> n >> k;vector<int> a(n);for (int i=0; i<n; i++){cin >> a[i];}//:vector<int> b = a;//reverse(b.begin(), b.end());vector<int> sa = suffix_array(a);vector<int> ans(0);for (int i=0; i<n; i++){//cout << sa[i] << endl;;}vector<int> lets(n);for (int i=0; i<n; i++){lets[sa[i]] = i;}vector<int> v(0), w(0);for (int i=0; i<n-1; i++){if (lets[i] > lets[i+1]){v.push_back(i);}else{w.push_back(i);}}vector<int> r = v;r.push_back(n-1);reverse(w.begin(), w.end());for (int i=0; i<w.size(); i++){r.push_back(w[i]);}for (int i=0; i<n; i++){if (r[k-1] == i) continue;ans.push_back(a[i]);}for (int i=0; i<n-1; i++){cout << ans[i] << " ";}cout << "\n";}