Plants Watering(ECPC2019)

考虑相邻的两个树的高度
算出相邻两个树高度满足题意的时间区间
最后对每个时间区间取并 如果交集不为0 则取交集最小的 如果交集为0 则不成立
#include
using namespace std;
#define lowbit(x) x&(-x)
#define ll long long
const int maxn=1e5+5;
ll a[maxn],g[maxn];
int n;
ll L=0,R=1e9;
ll maxl(ll aa,ll bb){
if(aa>bb)return aa;
return bb;
}
ll minl (ll aa,ll bb){
if(aa>bb)return bb;
return aa;
}
int main(){
freopen("plants.in","r",stdin);
cin>>n;
for(int i=1;i<=n;i++)cin>>a[i];
for(int i=1;i<=n;i++)cin>>g[i];
for(int i=1;ig[i+1]){
if(a[i]>a[i+1]){
cout<<-1<