负环
#include<bits/stdc++.h> using namespace std; struct edge { int to,len,next; }edge[2000000]; long long n,m,s,num,tim[2000000],head[2000000],book[2000000],dis[2000000],b[20000000]; priority_queue<pair<long long,long long> > q; void sett() { n=m=s=num=0; memset(tim,0,sizeof(tim)); memset(book,0,sizeof(book)); memset(head,0,sizeof(head)); } void add(long long u,long long v,long long w) { edge[++num].to=v; edge[num].len=w; edge[num].next=head[u]; head[u]=num; } bool spfa(long long s) { long long h=1,t=1; for(long long i=1;i<=n;i++) dis[i]=2147483647; dis[s]=0; book[s]=1; b[t++]=s; tim[s]++; while(h