题目链接:http://codeforces.com/problemset/problem/358/A
题目就是对一个序列x,对所有的i<n,连接xi和xi+1画半圆,问有没有相交。
水题,说白了就是问它们对应的区间有没有相交,在端点的不算。
尼玛一开始还在想什么排序优化什么的,怎么想都觉得不对劲。
忽然发现N才1000,囧。。。。
然后就没有然后了,随便暴力,注意端点相交是不算的就行了。
#include<cstdio>
struct Sege{
int a,b;
}s[1000];
int n, i, j, a, b;
int main(){
while(~scanf("%d", &n)){
scanf("%d", &a);
n--;
for(i=0; i<n; i++){
scanf("%d", &b);
if(a>b) s[i] = (Sege){b,a};
else s[i] = (Sege){a,b};
a=b;
}
bool flag=1;
for(i=0; i<n && flag; i++){
for(j=0; j<i; j++){
if((s[i].a>s[j].a && s[i].a<s[j].b && s[i].b>s[j].b) || (s[j].a>s[i].a&&s[j].a<s[i].b&&s[j].b>s[i].b)){
flag=0;
break;
}
}
}
if(!flag) puts("yes");
else puts("no");
}
return 0;
}