记录编号 326859 评测结果 WAWATTTTTT
题目名称 零食店 最终得分 20
用户昵称 Gravatarmybing 是否通过 未通过
代码语言 C++ 运行时间 6.032 s
提交时间 2016-10-21 16:59:37 内存使用 99.90 MiB
显示代码纯文本
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
#include<string>
#include<iomanip>
#include<ctime>
using namespace std;
int a,b,c,lin[11000],f[110],q,w,t[5100][5110],r,ai[11000],bi[11000],ci[11000],sum=0;
int len=0;
void dfs(int xx,int yy,int chang,int ww)
{
	for(int ik=1;ik<=a;ik++)
	{
		if(t[xx][ik]>0&&ai[ik]==0&&((ww+t[xx][ik])<=chang))
		{
			bi[ik]=1;
			if(f[ik]<=yy)
				{
			ai[ik]=1;
			bi[ik]=1;
			dfs(ik,yy,chang,ww+t[xx][ik]);
			ai[ik]=0;
			}
			else
			{bi[ik]=1;}
		}
	}
	return;
}
int main()
{
	freopen("snackstore.in","r",stdin);
	freopen("snackstore.out","w",stdout);
	memset(ai,0,sizeof(ai));
	memset(bi,0,sizeof(bi));
	cin>>a>>b>>c;
	for(int i=1;i<=a;i++)
		cin>>f[i];
	for(int i=1;i<=b;i++)
	{
		int lo,lp,li;
		cin>>lo>>lp>>li;
		t[lo][lp]=li;
		t[lp][lo]=li;
	}
	for(int i=1;i<=c;i++)
	{	sum=0;
		cin>>q>>w>>r;
		ai[q]=1;
		dfs(q,w,r,0);
		for(int j=1;j<=a;j++)
	{
		if(bi[j]==1) sum++;
	}
		if(sum==0)
	cout<<sum<<endl;
		else cout<<sum<<endl;
		ai[q]=0;
		memset(bi,0,sizeof(bi));
	}
	return 0;
}