-
Notifications
You must be signed in to change notification settings - Fork 189
Expand file tree
/
Copy pathc.cc
More file actions
40 lines (40 loc) · 894 Bytes
/
Copy pathc.cc
File metadata and controls
40 lines (40 loc) · 894 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
// https://codeforces.com/contest/1079/problem/C
#include <bits/stdc++.h>
using namespace std;
using ll=long long;
using vi=vector<int>;
using vvi=vector<vi>;
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
int n;
cin>>n;
vi a(n);
for(int i=0;i<n;i++)cin>>a[i];
vvi dp(n, vi(6));
for(int i=1;i<n;i++)
for(int j=1;j<6;j++){
dp[i][j]=-1;
if(a[i]==a[i-1]){
for(int k=1;k<6;k++)
if(j!=k&&dp[i-1][k]!=-1)dp[i][j]=k;
}else if(a[i]>a[i-1]){
for(int k=1;k<j;k++)
if(dp[i-1][k]!=-1)dp[i][j]=k;
}else{
for(int k=j+1;k<6;k++)
if(dp[i-1][k]!=-1)dp[i][j]=k;
}
}
for(int i=1;i<6;i++)
if(dp[n-1][i]!=-1){
vi r(n);
for(int j=0;j<n;j++){
r[n-1-j]=i;
i=dp[n-j-1][i];
}
for(int j=0;j<n;j++)cout<<r[j]<<" \n"[j==n-1];
return 0;
}
cout<<"-1\n";
}