记录编号 | 351570 | 评测结果 | AAAAAAAAAA | ||
---|---|---|---|---|---|
题目名称 | 冰桥,升起来了! | 最终得分 | 100 | ||
用户昵称 | 是否通过 | 通过 | |||
代码语言 | 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; }