记录编号 |
157743 |
评测结果 |
AAAAAAAAAA |
题目名称 |
[USACO Jan15] 牛的路线2 |
最终得分 |
100 |
用户昵称 |
Ra-xp |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.233 s |
提交时间 |
2015-04-09 22:11:21 |
内存使用 |
1.31 MiB |
显示代码纯文本
#include<algorithm>
#include<iostream>
#include<fstream>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<vector>
#include<stack>
using namespace std;
class T
{
public:
int ib, ie;
int much, num;
int way[510];
}
plane[510];
int main()
{
freopen("cowrouteb.in","r",stdin);
freopen("cowrouteb.out","w",stdout);
int n, b, e, i, j, k, l, min=999999;
bool T1, T2;
cin>>b>>e>>n;
for(i=0;i<n;i++)
{
T1=false;
T2=false;
plane[i].ib=-2;
plane[i].ie=-2;
cin>>plane[i].much>>plane[i].num;
for(j=0;j<plane[i].num;j++)
{
cin>>plane[i].way[j];
if(plane[i].way[j]==b)
{
plane[i].ib=j;
}
if(plane[i].way[j]==b && T2!=true)
{
T1=true;
}
if(plane[i].way[j]==e)
{
T2=true;
plane[i].ie=j;
}
if(T1==true && T2==true)
{
plane[i].ib=-1;
plane[i].ie=-1;
if(min>plane[i].much)
{
min=plane[i].much;
}
}
}
}//cout<<min<<endl;
/*for(i=0;i<n;i++)
{
cout<<i<<' '<<plane[i].num<<endl;
for(j=0;j<plane[i].num;j++)
{
cout<<plane[i].way[j]<<' ';
}cout<<endl;
cout<<'('<<plane[i].ib<<' '<<plane[i].ie<<')'<<endl;
}*/
for(i=0;i<n;i++)
{
if(plane[i].ib>=0)
{
for(j=0;j<n;j++)
{
if(plane[j].ie>0 && j!=i)
{
for(k=plane[i].ib+1;k<plane[i].num;k++)
{
for(l=0;l<plane[j].ie;l++)
{
if(plane[i].way[k]==plane[j].way[l])
{
//cout<<i<<' '<<j<<' '<<'('<<plane[i].much+plane[j].much<<')'<<endl;
if(min>plane[i].much+plane[j].much)
{
min=plane[i].much+plane[j].much;
}
break;
}
}
}
}
}
}
}
if(min==999999)cout<<-1<<endl;
else cout<<min<<endl;
return 0;
}