結果
問題 | No.930 数列圧縮 |
ユーザー |
![]() |
提出日時 | 2019-11-22 22:18:57 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 38 ms / 2,000 ms |
コード長 | 864 bytes |
コンパイル時間 | 1,676 ms |
コンパイル使用メモリ | 175,868 KB |
実行使用メモリ | 6,820 KB |
最終ジャッジ日時 | 2024-10-11 04:00:45 |
合計ジャッジ時間 | 3,853 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 24 |
ソースコード
#include <bits/stdc++.h> using namespace std; #define modulo 1000000007 #define mod(mod_x) ((((long long)mod_x+modulo))%modulo) #define Inf 1000000000 int main(){ int N; cin>>N; vector<int> a(N); for(int i=0;i<N;i++)cin>>a[i]; if(a[0]>a.back()){ cout<<"No"<<endl; return 0; } vector<int> ans; vector<bool> X(N,false); deque<int> d; int l = -1; for(int i=1;i<N-1;i++){ if(i==1){ l=a[i]; d.push_back(l); } else{ if(a[i]>l){ ans.push_back(a[i]); X[i]=true; } else{ l=a[i]; d.push_back(l); } } } while(d.size()!=0){ if(d.front()>a[0]){ ans.push_back(d.front()); d.pop_front(); } else{ ans.push_back(d.back()); d.pop_back(); } } ans.push_back(a[0]); cout<<"Yes"<<endl; for(int i=0;i<ans.size();i++){ if(i!=0)cout<<' '; cout<<ans[i]; } cout<<endl; return 0; }