枚举水过.
/*
* UVA10730.cpp
*
* Created on: Jun 14, 2013
* Author: root
*/
#include <iostream>
#include <cstdio>
#include <memory.h>
#define lson l, m, rt << 1
#define rson m + 1, r , rt << 1 | 1
using namespace std;
const int maxn = 10010;
int perm[maxn], pos[maxn];
bool exi[maxn];
int n;
int main(){
while(scanf("%d", &n) && n){
getchar();
memset(exi, 0, sizeof(exi));
memset(pos, 0, sizeof(pos));
int f = 0;
for(int i = 0; i < n; ++i){
scanf("%d", &perm[i]);
int &t = perm[i];
if(!f)
for(int j = 1; t - 2 * j >= 0; ++j){
if(exi[t - j] && exi[t - j - j] && pos[t - j] > pos[t - j - j]){
f = 1;
break;
}
}
if (!f)
for (int j = 1; t + 2 * j < n; ++j) {
if (exi[t + j] && exi[t + j + j] && pos[t + j] > pos[t + j
+ j]) {
f = 1;
break;
}
}
exi[t] = 1;
pos[t] = i;
}
if(f)printf("no\n");
else printf("yes\n");
}
return 0;
}