Codeforces Round #214 (Div. 2) D. Dima and Trap Graph (枚举+二分+搜索)(二)

2014-11-24 02:42:00 · 作者: · 浏览: 4
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; }