結果

問題 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
権限があれば一括ダウンロードができます

ソースコード

diff #

#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;
}
0