废掉了,10pt
#include<bits/stdc++.h>
using namespace std;
int qq,pp,cc,ff,uu[5000],sth[500],sto[500],as;
bool edda[500];
struct node{
int u,v,w;
}e[5000];
void d3(int u,int v,int w){
e[as++].u=v,e[as].v=w,e[as].w=sto[u],sto[u]=as;
}
bool d2()
{
queue<int>q;
memset(uu,0x3f,sizeof(uu));
q.push(1),uu[1]=true,edda[1]=false;
while(!q.empty()){
int u=q.front();
q.pop(),edda[u]=0,sth[u]++;
if(sth[u]>cc+1) return false;
for(int i=sto[u];i;i=e[i].w){
int v=e[i].u;
if(uu[v]>uu[u]+e[i].v){
uu[v]=uu[u]+e[i].v;
if(!edda[v]) edda[v]=1,q.push(v);
}
}
}
return true;
}
int main()
{
cin>>qq>>pp>>cc>>ff;
int u,v,w;
for(int i=1;i<=pp;i++) cin>>u>>v,d3(u,v,-qq);
for(int i=1;i<=ff;i++) cin>>u>>v>>w,d3(u,v,-qq);
for(int i=1;i<=cc;i++) d3(0,i,-qq);
if(d2()) cout<<"orz";
else{
int ans=0;
for(int i=1;i<=cc;i++) ans=min(ans,uu[i]);
cout<<-ans;
}
return 0;
}
求改代码