记录编号 157886 评测结果 AAAAAAAAAA
题目名称 [USACO Jan15] 牛的路线2 最终得分 100
用户昵称 Gravatarwolf. 是否通过 通过
代码语言 C++ 运行时间 0.060 s
提交时间 2015-04-10 23:54:16 内存使用 0.31 MiB
显示代码纯文本
#include<iostream>
#include<fstream>
#include<bitset>
#include<vector>
#include<deque>
#include<map>
#include<set>
#include<queue>
#include<string>
#include<algorithm>
#include<cmath>
#include<ctime>
#include<cstdio>
using namespace std;
#if defined wolf
const string ok="OK";
const string kk="	";
ofstream nnew("cowrouteb.in",ios::app);
ifstream fin("cowrouteb.in");
#define fout cout
#define Endl endl
#else
ifstream fin("cowrouteb.in");
ofstream fout("cowrouteb.out");
#endif
const int IMAX=99999999;
int A,B;
int main(){
	int n;
	fin>>A>>B>>n;
	vector<int> AA;
	vector<int> BB;
	vector<int> ans;
	AA.resize(10005,IMAX);
	BB=AA;
	ans=AA;
	//cout<<A<<kk<<B<<endl;
	for(int i=0;i!=n;++i){
		int cost,np;
		int bega=-1,begb=-1;
		fin>>cost>>np;
		vector<int> pp;
		for(int j=0;j!=np;++j){
			int r;
			fin>>r;
			pp.push_back(r);
			if(r==A){
				bega=j;
			}
			if(r==B){
				begb=j;
			}
		}
		if(bega!=-1){
			for(int j=bega+1;j<pp.size();++j){
				if(AA[pp[j]]>cost){
					AA[pp[j]]=cost;
				}
			}
		}
		for(int j=0;j<begb;++j){
			if(BB[pp[j]]>cost){
				BB[pp[j]]=cost;
			}
		}
		/*for(int i=0;i!=10;++i){
			cout<<AA[i]<<"  ";
		}
		cout<<endl;
		for(int i=0;i!=10;++i){
			cout<<BB[i]<<"  ";
		}
		cout<<endl;
		cout<<"----"<<endl;*/
	}
	int mmin=IMAX;
	AA[A]=0;
	BB[B]=0;
	for(int i=0;i!=AA.size();++i){
		mmin=min(mmin,AA[i]+BB[i]);
	}
	if(mmin==IMAX){
		fout<<-1;
		return 0;
	}
	fout<<mmin;
	//-------------------------*/
	#if defined wolf
	cout<<endl<<(double)clock()/CLOCKS_PER_SEC<<'s'<<endl;
	system("pause");
	#endif
	return 0;
}
//Designed by wolf
//Fri Apr 10 2015