Submission #2883850
Source Code Expand
#include<set> #include<map> #include<stack> #include<cmath> #include<cstdio> #include<queue> #include<vector> #include<cstring> #include<climits> #include<iostream> #include<algorithm> using namespace std; #define INF 0x3f3f3f3f #define MAXN 100000 #define LL long long LL read(){ LL f=1,x=0; char c=getchar(); while(c<'0'||'9'<c){if(c=='-')f=-1;c=getchar();} while('0'<=c&&c<='9'){x=x*10+c-'0';c=getchar();} return f*x; } LL n,m,Min=1,Max=INF,val[MAXN+5],vis[MAXN+5]; struct edge{ LL v,w; edge(){} edge(LL V,LL W){v=V,w=W;} }; vector<edge> G[MAXN+5]; void DFS(LL x,LL u,LL fa,LL f){ if(x<=0){ if(f){ printf("0\n"); exit(0); } Min=max(Min,-x+1); } if(f) Max=min(Max,x); vis[u]=f+1,val[u]=x; LL v,w,siz=G[u].size(); for(int i=0;i<siz;i++){ v=G[u][i].v,w=G[u][i].w; if(v==fa) continue; if(vis[v]){ if(vis[u]==vis[v]){ if(val[u]+val[v]>w||(val[u]+val[v])%2!=w%2){ printf("0\n"); exit(0); } if(Min>1+(w-(val[u]+val[v]))/2||Max<1+(w-(val[u]+val[v]))/2){ printf("0\n"); exit(0); } Max=Min=1+(w-(val[u]+val[v]))/2; }else{ if(val[u]+val[v]!=w){ printf("0\n"); exit(0); } if(val[v]<=0){ if(vis[v]-1){ printf("0\n"); exit(0); } Min=max(Min,-val[v]+1); } } return ; } DFS(w-x,v,u,(f+1)%2); } return ; } int main(){ n=read(),m=read(); for(int i=1;i<=m;i++){ LL u=read(),v=read(),w=read(); G[u].push_back(edge(v,w)); G[v].push_back(edge(u,w)); } DFS(1,1,-1,0); printf("%lld\n",max(0,Max-Min+1)); return 0; }
Submission Info
Submission Time | |
---|---|
Task | E - + Graph |
User | C20192413 |
Language | C++14 (GCC 5.4.1) |
Score | 0 |
Code Size | 1676 Byte |
Status | CE |
Compile Error
./Main.cpp: In function ‘int main()’: ./Main.cpp:82:33: error: no matching function for call to ‘max(int, long long int)’ printf("%lld\n",max(0,Max-Min+1)); ^ In file included from /usr/include/c++/5/bits/stl_tree.h:63:0, from /usr/include/c++/5/set:60, from ./Main.cpp:1: /usr/include/c++/5/bits/stl_algobase.h:219:5: note: candidate: template<class _Tp> constexpr const _Tp& std::max(const _Tp&, const _Tp&) max(const _Tp& __a, const _Tp& __b) ^ /usr/include/c++/5/bits/stl_algobase.h:219:5: note: template argument deduction/substitution failed: ./Main.cpp:82:33: note: deduced conflicting types for parameter ‘const _Tp’ (‘int’ and ‘long long int’) printf("%lld\n",max(0,Max-Min+1)); ^ In file included from /usr/include/c++/5/bits/stl_tree.h:63:0, from /usr/include/c++/5/set:60, from ./Main.cpp:1: /usr/include/c++/5/bits/stl_algobase.h:265:5: note: candidate: tem...