ACM ZOJ 2283代码一直Segmentation Fault怎么回事

#include
using namespace std;
#define maxn 1000100
int r;
struct wode
{
int b,e;
}arr[maxn];
bool cmp(wode a,wode b)
{
if(a.e!=b.e) return a.e return a.b }
int n,m,k,c[maxn];
int dich(int x,int y)
{
int left=1,right=y;
int mid;
while(left {
mid=(left+right)/2;
if(x else right=mid-1;
}
r=max(r,left);
return left;
}
void LIS()
{
c[1]=arr[0].b;r=1;
for(int i=1;i {
int mm=arr[i].b;
c[dich(mm,r)]=mm;
}
cout }
int main()
{
while(cin>>n>>m>>k)
{
memset(c,0,sizeof(c));
for(int i=0;i cin>>arr[i].b>>arr[i].e;
sort(arr,arr+n,cmp);
LIS();
}
}
//这是源码,vs2015,dev都可以编译通过,提交就错了

http://www.cppblog.com/Ayue/archive/2011/11/30/161232.aspx