結果
| 問題 |
No.318 学学学学学
|
| コンテスト | |
| ユーザー |
seatofhorse
|
| 提出日時 | 2017-09-03 16:10:26 |
| 言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
| 結果 |
AC
|
| 実行時間 | 146 ms / 2,000 ms |
| コード長 | 615 bytes |
| コンパイル時間 | 728 ms |
| コンパイル使用メモリ | 74,292 KB |
| 実行使用メモリ | 13,568 KB |
| 最終ジャッジ日時 | 2024-06-22 18:21:33 |
| 合計ジャッジ時間 | 4,262 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 26 |
ソースコード
#include <iostream>
#include <set>
#include <map>
constexpr int MAX_N=(int)1e5;
int n;
int a[MAX_N],b[MAX_N];
std::map<int,int> last;
std::set<int> set;
int main() {
std::cin>>n;
for(int i=0;i<n;++i)
std::cin>>a[i];
for(int i=n-1;i>=0;--i){
if(!set.count(a[i])){
last[i]=a[i];
set.emplace(a[i]);
}
}
set.clear();
for(int i=0;i<n;++i){
set.emplace(a[i]);
b[i]=*(set.rbegin());
set.erase(last[i]);
}
for(int i=0;i<n;++i)
std::cout<<b[i]<<' ';
std::cout<<std::endl;
return 0;
}
seatofhorse