记录编号 |
351570 |
评测结果 |
AAAAAAAAAA |
题目名称 |
冰桥,升起来了! |
最终得分 |
100 |
用户昵称 |
AAAAAAAAAA |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.035 s |
提交时间 |
2016-11-16 17:20:03 |
内存使用 |
0.68 MiB |
显示代码纯文本
#include<cstdio>
#include<algorithm>
namespace IO{
char buf[1<<15],*fs,*ft;
inline char gc(){return (fs==ft&&(ft=(fs=buf)+fread(buf,1,1<<15,stdin),fs==ft))?0:*fs++;}
inline int qr(){
int x=0,ch=gc();
while(ch<'0'||ch>'9'){ch=gc();}
while(ch>='0'&&ch<='9'){x=(x<<1)+(x<<3)+ch-'0';ch=gc();}
return x;}
}using namespace IO;
using namespace std;
/*******************************************************************************************************/
int A,B,K,va[40010],vb[40010],fa[40010],fb[40010];
struct EDGE{
int a;
int b;
}e[100010];
bool cmp(EDGE x,EDGE y){
if(x.a==y.a){
return x.b<y.b;}
return x.a<y.a;}
int sb(){
freopen ("meibridge.in","r",stdin);
freopen ("meibridge.out","w",stdout);
int i,ans=0;
A=qr();B=qr();K=qr();
for(i=1;i<=A;i++){
va[i]=qr();
fa[i]=va[i];}
for(i=1;i<=B;i++){
vb[i]=qr();
fb[i]=vb[i];}
for(i=1;i<=K;i++){
e[i].a=qr();
e[i].b=qr();}
sort(e+1,e+1+K,cmp);
for(i=1;i<=K;i++){
int a=e[i].a;int b=e[i].b;int FA=fa[a];int FB=fb[b];
fa[a]=max(fa[a],FB+va[a]);
fb[b]=max(fb[b],FA+vb[b]);}
for(i=1;i<=A;i++){
ans=max(fa[i],ans);}
for(i=1;i<=B;i++){
ans=max(fb[i],ans);}
printf("%d",ans);
return 0;
}
int chh=sb();
int main(){
return 0;
}