记录编号 157743 评测结果 AAAAAAAAAA
题目名称 [USACO Jan15] 牛的路线2 最终得分 100
用户昵称 GravatarRa-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;
}