记录编号 |
326859 |
评测结果 |
WAWATTTTTT |
题目名称 |
零食店 |
最终得分 |
20 |
用户昵称 |
mybing |
是否通过 |
未通过 |
代码语言 |
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;
}