UVA-1442 Cav

来源:互联网 发布:网络发国际传真 编辑:程序博客网 时间:2024/05/18 02:07

题目链接:https://vjudge.net/problem/UVA-1442

思路参见紫书第八章例题8-18题解

#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>using namespace std;const int N=1e6+10;int a[N],b[N];int h[N];int n;int main(){int T;scanf("%d",&T);while(T--){scanf("%d",&n);for(int i=0;i<n;i++)scanf("%d",&a[i]);for(int i=0;i<n;i++)scanf("%d",&b[i]);int lv=b[0];for(int i=0;i<n;i++){if(lv>b[i]) lv=b[i];if(lv<a[i]) lv=a[i];h[i]=lv;}lv=b[n-1];int ans=0;for(int i=n-1;i>=0;i--){if(lv>b[i]) lv=b[i];if(lv<a[i]) lv=a[i];ans+=min(lv,h[i])-a[i];}printf("%d\n",ans);}return 0;}