洞穴 Cave

//紫書P249洞穴Cave
//Serene
#include<algorithm>
#include<iostream>
#include<cstring>
#include<cstdlib>
#include<cstdio>
#include<cmath>
using namespace std;
const int maxn=1e6+10;
int Q,n,fl[maxn],ce[maxn],ans[maxn];

int aa=0;char c;
int read() {
	aa=0;c=getchar();
	while(c<'0'||c>'9') c=getchar();
	while(c>='0'&&c<='9') aa=aa*10+c-'0',c=getchar();
	return aa;
}

int main() {
	Q=read();int temp,anstot;
	while(Q--) {
		n=read();anstot=0;
		memset(ans,127,sizeof(ans));
		for(int i=1;i<=n;++i) fl[i]=read()-1;
		for(int i=1;i<=n;++i) ce[i]=read();
		temp=ce[1]-1;
		for(int i=1;i<=n;++i) {
			if(ce[i]<=temp) temp=ce[i]-1;
			if(fl[i]>temp) temp=fl[i];
			ans[i]=min(ans[i],temp);
		}
		temp=ce[n]-1;
		for(int i=n;i>=1;--i) {
			if(ce[i]<=temp) temp=ce[i]-1;
			if(fl[i]>temp) temp=fl[i];
			anstot+=min(ans[i],temp)-fl[i];
		}
		cout<<anstot<<"\n";
	}
	return 0;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章