Codeforces Round #214 (Div. 2) D. Dima and Trap Graph (枚举+二分+搜索)(二)
ri)
{
if(flag) return ;
if(u==n)
{
flag=1;
return ;
}
int i,j,v;
for(i=pp[u]; i; i=edge[i].next)
{
v=edge[i].v;
if(!vis[v]&&le>=edge[i].a&&ri<=edge[i].b)
{
vis[v]=1;
dfs(v,le,ri);
}
}
}
void solve()
{
int i,j,u,v,t;
int le,ri,mid;
ans=0;
for(i=1;i<=cxx;i++)
{
le=x[i],ri=1000001;
while(le>1;
flag=0;
memset(vis,0,sizeof(vis));
vis[1]=1;
dfs(1,x[i],mid);
if(flag) le=mid+1;
else ri=mid;
}
ans=max(ans,le-x[i]);
}
}
int main()
{
int i,j;
int u,v,a,b;
while(~scanf("%d%d",&n,&m))
{
cnt=cxx=0;
memset(pp,0,sizeof(pp));
for(i=1; i<=m; i++)
{
scanf("%d%d%d%d",&u,&v,&a,&b);
x[++cxx]=a;
x[++cxx]=b;
addedge(u,v,a,b);
addedge(v,u,a,b);
}
solve();
if(ans) printf("%d\n",ans);
else printf("Nice work, Dima!\n");
}
return 0;
}