记录编号 |
312492 |
评测结果 |
AAAAA |
题目名称 |
[HAOI 2005]希望小学 |
最终得分 |
100 |
用户昵称 |
Hakurou! |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.000 s |
提交时间 |
2016-09-26 16:12:24 |
内存使用 |
0.00 MiB |
显示代码纯文本
#include<cmath>
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define GET (ch>='0'&&ch<='9')
#define FA(i,a,b) for(i=a;i<=b;i++)
#define FL(i,a,b) for(i=a;i>=b;i--)
typedef long long ll;
const int miau=160325521;
using namespace std;
int i,j,k;
void in(int &x)
{
char ch=getchar();x=0;int f=1;
while(!GET)f=ch=='-'?-1:f,ch=getchar();
while(GET)x=x*10+ch-'0',ch=getchar();x*=f;
}
int main(){;}
int n,m;
int ba,bb,bc,ga,gb,gc;
int b[500],g[500];
int from,to,ra,rb,rc;
int f[500][500];
void pre(int n)
{
FA(i,1,n)
{
FA(j,1,n)
{
if(i==j)f[i][j]=0;
else f[i][j]=miau;
}
}
}
void floyd(int n)
{
int i;
FA(i,1,n)
{
FA(j,1,n)
{
FA(k,1,n)
{
if(f[i][j]+f[j][k]<=f[i][k])f[i][k]=f[i][j]+f[j][k];
}
}
}
FL(i,n,1)
{
FL(j,n,1)
{
FL(k,n,1)
{
if(f[i][j]+f[j][k]<=f[i][k])f[i][k]=f[i][j]+f[j][k];
}
}
}
}
void printfloyd(int n)
{
FA(i,1,n)
{
FA(j,1,n)
{
printf("%d ",f[i][j]);
}
printf("\n");
}
}
int A()
{
freopen("hopeschool.in","r",stdin);
freopen("hopeschool.out","w",stdout);
in(n);in(ba);in(bb);in(bc);in(ga);in(gb);in(gc);
pre(n);
FA(i,1,n)in(b[i]);
FA(i,1,n)in(g[i]);
in(m);
FA(i,1,m)
{
in(from);in(to);in(ra);in(rb);in(rc);
f[from][to]=b[from]*(ra*ba+rb*bb+rc*bc)+g[from]*(ra*ga+rb*gb+rc*gc);
f[to][from]=b[to]*(ra*ba+rc*bb+rb*bc)+g[to]*(ra*ga+rc*gb+rb*gc);
}
floyd(n);
//printfloyd(n);
int dis[500];
FA(i,1,n)dis[i]=0;
FA(i,1,n)
{
FA(j,1,n)
{
FA(k,1,n)
{
if(k==i)
{
dis[i]+=f[j][k];
}
}
}
}
//FA(i,1,n)printf("%d ",dis[i]);
int min=miau;
int num;
FA(i,1,n)
{
if(dis[i]<min)
{
min=dis[i];
num=i;
}
}
printf("%d\n",num);
return 0;
}
int B=A();