比赛 |
NOIP模拟赛by mzx Day1 |
评测结果 |
WAWWTTTTTT |
题目名称 |
零食店 |
最终得分 |
10 |
用户昵称 |
PorterCass·D·Ace |
运行时间 |
6.036 s |
代码语言 |
C++ |
内存使用 |
0.32 MiB |
提交时间 |
2016-10-19 21:00:01 |
显示代码纯文本
#include<iostream>
#include<iomanip>
#include<cmath>
#include<cstdio>
#include<string>
#include<cstring>
#include<algorithm>
#include<queue>
using namespace std;
int n,a[110][110],b[110]={};
int m,q,maxx=-10;
int prim(int s,int c,int d,int k)
{
if(k>=maxx)
maxx=k;
//cout<<s<<'-';
if(b[s]>c&&k!=0)
return 0;
if(k>maxx)
maxx=k;
for(int i=1;i<=n;i++)
if(a[s][i]!=0&&d-a[s][i]>=0)
{
int kk=a[s][i];
a[s][i]=0;
prim(i,c,d-a[s][i],++k);
a[s][i]=kk;
}
return 0;
}
int main()
{
freopen("snackstore.in","r",stdin);
freopen("snackstore.out","w",stdout);
memset(a,0,sizeof(a));
cin>>n>>m>>q;
for(int i=1;i<=n;i++)
cin>>b[i];
for(int i=1;i<=m;i++)
{
int x,y,z;
cin>>x>>y>>z;
a[x][y]=z;
a[y][x]=z;
}
for(int i=1;i<=q;i++)
{
int s,c,d;
maxx=-10;
cin>>s>>c>>d;
prim(s,c,d,0);
//cout<<endl;
cout<<maxx<<endl;
}
return 0;
}