8166 | 2024. 01. 12 15:20:04 | FulopMate | Titkos sorozat | cpp17 | Elfogadva 40/40 | 35ms | 25688 KiB |
// Source: https://usaco.guide/general/io
#include <bits/stdc++.h>
using namespace std;
int n;
vector<int> v, ans;
vector<vector<int>> w;
void solve(int l, int r, int mn, int mx, int kov){
if(l > r)return;
if(l == r){
ans[l] = mn;
return;
}
int i = *lower_bound(w[kov].begin(), w[kov].end(), l);
ans[i] = mx;
solve(l, i-1, mn, mn+(i-1-l), i);
solve(i+1, r, mn+(i-1-l)+1, mx-1, kov);
}
/*
5
-1 3 4 -1 -1
*/
int main() {
ios_base::sync_with_stdio(0); cin.tie(0);
// ifstream cin("be2.txt");
cin>>n;
v.assign(n, 0);
for(int&i:v){cin>>i;i--;if(i == -2)i = n;}
w.assign(n+1, {});
for(int i = 0; i < n; i++){
w[v[i]].push_back(i);
}
ans.assign(n, 0);
solve(0, n-1, 0, n-1, n);
for(int i : ans)cout<<i+1<<" ";
cout<<endl;
}
Részfeladat | Összpont | Teszt | Verdikt | Idő | Memória | ||
---|---|---|---|---|---|---|---|
base | 40/40 | ||||||
1 | Elfogadva | 0/0 | 3ms | 1832 KiB | |||
2 | Elfogadva | 0/0 | 17ms | 7620 KiB | |||
3 | Elfogadva | 1/1 | 3ms | 2268 KiB | |||
4 | Elfogadva | 1/1 | 3ms | 2476 KiB | |||
5 | Elfogadva | 2/2 | 3ms | 2692 KiB | |||
6 | Elfogadva | 1/1 | 3ms | 2840 KiB | |||
7 | Elfogadva | 1/1 | 3ms | 3088 KiB | |||
8 | Elfogadva | 2/2 | 3ms | 3260 KiB | |||
9 | Elfogadva | 2/2 | 32ms | 12736 KiB | |||
10 | Elfogadva | 2/2 | 32ms | 12740 KiB | |||
11 | Elfogadva | 2/2 | 32ms | 12896 KiB | |||
12 | Elfogadva | 2/2 | 32ms | 13148 KiB | |||
13 | Elfogadva | 2/2 | 34ms | 13852 KiB | |||
14 | Elfogadva | 2/2 | 34ms | 14660 KiB | |||
15 | Elfogadva | 2/2 | 34ms | 16408 KiB | |||
16 | Elfogadva | 3/3 | 34ms | 17044 KiB | |||
17 | Elfogadva | 3/3 | 32ms | 17612 KiB | |||
18 | Elfogadva | 3/3 | 35ms | 18272 KiB | |||
19 | Elfogadva | 3/3 | 35ms | 19812 KiB | |||
20 | Elfogadva | 3/3 | 35ms | 25688 KiB | |||
21 | Elfogadva | 1/1 | 34ms | 13548 KiB | |||
22 | Elfogadva | 1/1 | 32ms | 13524 KiB | |||
23 | Elfogadva | 1/1 | 32ms | 13316 KiB |