This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <iostream>
#include <stdio.h>
#include <algorithm>
#include <set>
#include <tuple>
#include <math.h>
#include <string>
#include <map>
#include <vector>
#include <iterator>
#include <queue>//pq.push(追加),取り出し=pq.top(),pq.pop()削除。
#include <functional> // std::greater
using namespace std;
#define rep(i, n) for (int i = 0; i < (int)(n); i++)
#define in(...) cin >> __VA_ARGS__
#define out(...) cout << __VA_ARGS__ << endl
typedef long long int ll;
// index が条件を満たすかどうか
bool isOK(long long index, long long key, const vector<long long>& b) {
if (b[index] >= key) return true;
else return false;
}
// 汎用的な二分探索のテンプレ
int binary_search(long long key, const vector<long long>& b) {
ll left = -1;//「index = 0」が条件を満たすこともあるので、初期値は -1
ll right = b.size(); // 「index = a.size()-1」が条件を満たさないこともあるので、初期値は a.size()
while (right - left > 1) {
int mid = left + (right - left) / 2;
if (isOK(mid, key, b)) right = mid;
else left = mid;
}
/* left は条件を満たさない最大の値、right は条件を満たす最小の値になっている */
return left;
}
//vector同氏の比較
struct Compare {
bool operator()(const vector<ll>& a, const vector<ll>& b) const {
// aとbの比較ロジックを記述
// 例: a[0] が小さい場合、a を優先
return a[0] > b[0];
}
};
int main() {
ll n,x,akey;
vector<vector<ll>> a;
map<ll,ll> irotoban;
akey=0;
in(n);
a.resize(n, std::vector<ll>(2, 0));
rep(i,n){
if (i==0){
in(a[akey][0]);
irotoban[a[akey][0]]=akey;
continue;
}
in(x);
if (a[akey][0]==x){
a[akey][1]=i;
}
else{
if (irotoban.find(x)==irotoban.end()){
akey+=1;
a[akey][0]=x;
a[akey][1]=i;
irotoban[x]=akey;
}
else if(irotoban[x]<akey){
akey=irotoban[x];
a[akey][1]=i;
}
else{
akey+=1;
a[akey][0]=x;
a[akey][1]=i;
irotoban[x]=akey;
}
}
}
rep(i,akey+1){
if (i==0){
rep(k,a[i][1]+1){
out(a[i][0]);
}
}
else{
rep(k,a[i][1]-a[i-1][1]){
out(a[i][0]);
}
}
}
}
//2213
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |