C++
#include <cstdio>
using namespace std;
int order[520],N,K1,P,Q,K2;
void right(int n){//opposite of k
for(int j=1;j<=n;j++){
int temp=order[N];
for(int i=N-1;i>=1;i--){
order[i+1]=order[i];
}
order[1]=temp;
}
}
void reverse_(int s, int f){
if(s==f)
return;
int temp;
for (int i = 0; i < (f-s) / 2; i++) {
temp = order[i+s];
order[i+s] = order[((f-s)) - i+s];
order[((f-s)) - i+s] = temp;
}
}
int next(int n){
if(n==N){
return 1;
}
return n+1;
}
int prev(int n){
if(n==1){
return N;
}
return n-1;
}
void PQ(int n){
P+=n;
Q+=n;
if(P>N)
P-=N;
if(Q>N)
Q-=N;
}
void find_PQ(){
int prev_=order[N];
for(int i=1;i<=N;i++){
if(order[prev(prev(i))]==prev(prev_)&&order[i]!=next(prev_)){
P=i;
}
if(prev_!=prev(order[i])&&order[next(next(i))]==next(order[next(i)])&&order[next(i)]!=next(order[i])){
Q=i;
}
prev_=order[i];
}
if(P==0&&Q==0){
P=1;
Q=N;
}
}
void serch(){
find_PQ();
if(P>Q){
K2=N+1-P;
right(K2);
PQ(K2);
}
reverse_(P,Q);//perfect
int idx=order[1];
K1=idx-1;
if(K1==0){
K1=N;
}
if(K2==0){
K2=N;
}
}
int main(){
scanf("%d",&N);
for(int i=1;i<=N;i++){
scanf("%d",&order[i]);
}
serch();
printf("%d\n%d %d\n%d",K1,P,Q,K2);
}
댓글 0
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
공지 | 안내사항 | 관리자 | 2019.12.21 | 163 |
74 | 9663 | 관리자 | 2019.12.21 | 114 |
73 | 9345 | 관리자 | 2020.04.11 | 150 |
72 | 9019 | 관리자 | 2019.12.21 | 113 |
71 | 7569 | 관리자 | 2019.12.21 | 113 |
70 | 6987 | 관리자 | 2019.12.21 | 113 |
69 | 5842 | 관리자 | 2020.04.11 | 151 |
68 | 5625 | 관리자 | 2019.12.21 | 109 |
67 | 5419 | 관리자 | 2020.04.11 | 155 |
66 | 3392 | 관리자 | 2020.04.11 | 156 |
65 | 3019 | 관리자 | 2019.12.21 | 111 |
64 | 2933 | 관리자 | 2019.12.21 | 112 |
63 | 2931 | 관리자 | 2019.12.21 | 111 |
62 | 2836 | 관리자 | 2019.12.21 | 110 |
61 | 2667 | 관리자 | 2019.12.21 | 113 |
60 | 2636 | 관리자 | 2019.12.21 | 113 |
59 | 2629 | 관리자 | 2020.04.11 | 146 |
58 | 2615 | 관리자 | 2019.12.21 | 111 |
57 | 2610 | 관리자 | 2020.04.11 | 146 |
56 | 2606 | 관리자 | 2019.12.21 | 111 |
55 | 2585 | 관리자 | 2019.12.21 | 113 |
54 | 2578 | 관리자 | 2019.12.21 | 111 |
53 | 2573 | 관리자 | 2020.04.11 | 151 |
52 | 2557 | 관리자 | 2019.12.21 | 111 |
51 | 2512 | 관리자 | 2019.12.21 | 111 |
50 | 2504 | 관리자 | 2020.04.11 | 147 |
49 | 2481 | 관리자 | 2019.12.21 | 112 |
» | 2478 | 관리자 | 2020.04.11 | 148 |
47 | 2473 | 관리자 | 2020.04.11 | 153 |
46 | 2470 | 관리자 | 2020.04.11 | 151 |