| 记录编号 | 351280 | 评测结果 | AAWWWWWWWW | 
    
        | 题目名称 | 2550.冰桥,升起来了! | 最终得分 | 20 | 
    
        | 用户昵称 |  jmisnal | 是否通过 | 未通过 | 
    
        | 代码语言 | C++ | 运行时间 | 0.145 s | 
    
        | 提交时间 | 2016-11-16 13:40:24 | 内存使用 | 2.77 MiB | 
    
    
    
    		显示代码纯文本
		
		#include <iostream>
#include <cstdio>
#include <vector>
#define ad 40005
#define ll long long
using namespace std;
int read()
{
	int x=0;char ch=getchar();
	while(ch<'0'||ch>'9')ch=getchar();
	while(ch>='0'&&ch<='9')x=x*10+ch-'0',ch=getchar();
	return x;
}
struct data{
	int to,next;
}e[150000];
int head[81100],cnt;
void insert(int u,int v)
{
//	cout<<u<<' '<<v<<endl;
	e[++cnt].to=v;e[cnt].next=head[u];head[u]=cnt;
}
int A,B,m;
int v[81110];
ll f[81005];
bool mark[81004];
void dfs(int now,int fa)
{
	if(mark[now])return;
	mark[now]=1;
	
	f[now]=(ll)v[now];	
//	cout<<now<<' '<<fa<<' '<<f[now]<<endl;	
	ll big=0;
	for(int i=head[now];i;i=e[i].next)
	{
		int to=e[i].to;
		dfs(to,now);
		if(f[to]>big)big=f[to];
	}
	f[now]+=big;
}
int main()
{
//	freopen("abcd.in","r",stdin);
	freopen("meibridge.in","r",stdin);
	freopen("meibridge.out","w",stdout);
	A=read();B=read();m=read();
	for(int i=1;i<=A;i++)
		v[i]=read();
	for(int i=1;i<=B;i++)
		v[i+ad]=read();
	for(int i=1;i<=m;i++)
	{
		int x,y;x=read();y=read();
	//	insert(x,y+ad);
	//	insert(y+ad,x);
		if(x<= y+(A-B) )insert(x,y+ad);
		else insert(y+ad,x);
	}
//	cout<<")_))"<<endl;
	ll big=0;
	for(int i=1;i<=A;i++)
	{
		dfs(i,0);
		if(f[i]>big)big=f[i];
	}
	for(int i=1;i<=B;i++)
	{
		dfs(i+ad,0);
		if(f[i+ad]>big)big=f[i+ad];
	}
	printf("%lld\n",big);
//	cout<<f[1]<<' '<<f[2]<<' '<<f[3]<<endl;
	return 0;
}