比赛 EYOI与SBOI开学欢乐赛5th 评测结果 AAWAA
题目名称 SERNET模拟 最终得分 80
用户昵称 00000 运行时间 0.033 s
代码语言 C++ 内存使用 60.29 MiB
提交时间 2022-09-16 20:58:58
显示代码纯文本
#include<bits/stdc++.h>
#define ll long long
using namespace std;
int n,m,k,l,a[50];
struct node{
	int u,c;
};
vector<node> g[200000];
struct sj{
	int id,t,c,d;
}s[200000];
int an[200000],ans;
int flag=0,mark[110][110000];
void f(int x,int y,int tt)//编号,位置,时间 
{

	if(tt>l)
	{
		an[s[x].id]++;
		flag=1;
		return;
	}
//	cout<<s[x].id<<endl;
	if(mark[y][s[x].id]) return;
//		cout<<x<<" "<<y<<" "<<tt<<endl;
	if(y==s[x].d) return;
//	cout<<"sfdg"<<endl;
	mark[y][s[x].id]=1;
	
	for(node q:g[y])
	{
		f(x,q.u,tt+q.c);
		if(flag==1) return;
	}
}
int main(){
	freopen("sernet.in","r",stdin);
	freopen("sernet.out","w",stdout);
cin>>n;
for(int q=1;q<=n;q++) cin>>a[q];
cin>>m;
for(int q=1;q<=m;q++)
{
	int x,y,z;
	cin>>x>>y>>z;
	g[x].push_back({y,z});
	g[y].push_back({x,z});
}
cin>>k;
for(int q=1;q<=k;q++)
{
	cin>>s[q].id>>s[q].t>>s[q].c>>s[q].d;//id,时间,出发,目的 
}
cin>>l;
for(int q=1;q<=k;q++)
{
//	cout<<"veadfgsf"<<endl;
	flag=0;
	f(q,s[q].c,s[q].t);
}
for(int q=1;q<=150000;q++)
if(an[q]) ans++;
cout<<ans;
return 0;
}