#pragma GCC optimize ("Ofast")
#include<bits/stdc++.h>
using namespace std;
#define main dummy_main
int main( ) {
return 0 ;
}
#undef main
class Solution{
public :
vector< int > transformArray( vector< int > & arr) {
int N = arr.size ( ) ;
vector< int > tmp;
for ( ;; ) {
int i;
tmp = arr;
for ( i= ( 1 ) ; i< ( N- 1 ) ; i++ ) {
if ( arr[ i- 1 ] > arr[ i] && arr[ i] < arr[ i+ 1 ] ) {
tmp[ i] ++ ;
}
if ( arr[ i- 1 ] < arr[ i] && arr[ i] > arr[ i+ 1 ] ) {
tmp[ i] -- ;
}
}
if ( tmp == arr) {
break ;
}
arr = tmp;
}
return arr;
}
}
;
// cLay varsion 20191102-1
// --- original code ---
// #define main dummy_main
// {}
// #undef main
//
// class Solution {
// public:
// vector<int> transformArray(vector<int>& arr) {
// int N = arr.size();
// vector<int> tmp;
//
// for(;;){
// tmp = arr;
// rep(i,1,N-1){
// if(arr[i-1] > arr[i] && arr[i] < arr[i+1]) tmp[i]++;
// if(arr[i-1] < arr[i] && arr[i] > arr[i+1]) tmp[i]--;
// }
// if(tmp == arr) break;
// arr = tmp;
// }
//
// return arr;
// }
// };
I3ByYWdtYSBHQ0Mgb3B0aW1pemUgKCJPZmFzdCIpCiNpbmNsdWRlPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgbWFpbiBkdW1teV9tYWluCmludCBtYWluKCl7CiAgcmV0dXJuIDA7Cn0KI3VuZGVmIG1haW4KY2xhc3MgU29sdXRpb257CiAgcHVibGljOgogIHZlY3RvcjxpbnQ+IHRyYW5zZm9ybUFycmF5KHZlY3RvcjxpbnQ+JiBhcnIpewogICAgaW50IE4gPSBhcnIuc2l6ZSgpOwogICAgdmVjdG9yPGludD4gdG1wOwogICAgZm9yKDs7KXsKICAgICAgaW50IGk7CiAgICAgIHRtcCA9IGFycjsKICAgICAgZm9yKGk9KDEpO2k8KE4tMSk7aSsrKXsKICAgICAgICBpZihhcnJbaS0xXSA+IGFycltpXSAmJiBhcnJbaV0gPCBhcnJbaSsxXSl7CiAgICAgICAgICB0bXBbaV0rKzsKICAgICAgICB9CiAgICAgICAgaWYoYXJyW2ktMV0gPCBhcnJbaV0gJiYgYXJyW2ldID4gYXJyW2krMV0pewogICAgICAgICAgdG1wW2ldLS07CiAgICAgICAgfQogICAgICB9CiAgICAgIGlmKHRtcCA9PSBhcnIpewogICAgICAgIGJyZWFrOwogICAgICB9CiAgICAgIGFyciA9IHRtcDsKICAgIH0KICAgIHJldHVybiBhcnI7CiAgfQp9CjsKLy8gY0xheSB2YXJzaW9uIDIwMTkxMTAyLTEKCi8vIC0tLSBvcmlnaW5hbCBjb2RlIC0tLQovLyAjZGVmaW5lIG1haW4gZHVtbXlfbWFpbgovLyB7fQovLyAjdW5kZWYgbWFpbgovLyAKLy8gY2xhc3MgU29sdXRpb24gewovLyBwdWJsaWM6Ci8vICAgdmVjdG9yPGludD4gdHJhbnNmb3JtQXJyYXkodmVjdG9yPGludD4mIGFycikgewovLyAgICAgaW50IE4gPSBhcnIuc2l6ZSgpOwovLyAgICAgdmVjdG9yPGludD4gdG1wOwovLyAKLy8gICAgIGZvcig7Oyl7Ci8vICAgICAgIHRtcCA9IGFycjsKLy8gICAgICAgcmVwKGksMSxOLTEpewovLyAgICAgICAgIGlmKGFycltpLTFdID4gYXJyW2ldICYmIGFycltpXSA8IGFycltpKzFdKSB0bXBbaV0rKzsKLy8gICAgICAgICBpZihhcnJbaS0xXSA8IGFycltpXSAmJiBhcnJbaV0gPiBhcnJbaSsxXSkgdG1wW2ldLS07Ci8vICAgICAgIH0KLy8gICAgICAgaWYodG1wID09IGFycikgYnJlYWs7Ci8vICAgICAgIGFyciA9IHRtcDsKLy8gICAgIH0KLy8gCi8vICAgICByZXR1cm4gYXJyOwovLyAgIH0KLy8gfTsK