Submission #1205793

#TimeUsernameProblemLanguageResultExecution timeMemory
1205793buet_aluchashiColouring a rectangle (eJOI19_colouring)C++20
30 / 100
49 ms6472 KiB
#include<bits/stdc++.h> #define ll long long #define pll pair<ll,ll> #define INF 1e15 #define N 500005 using namespace std; struct segtree { vector<pll> arr; segtree(ll n):arr(4*n,make_pair((ll)-INF,0ll)) { ; } pll query(ll pos,ll lt,ll rt,ll a,ll b) { if(b<lt || a>rt || b<a || rt<lt) return make_pair((ll)-INF,0ll); if(a<=lt && rt<=b) return arr[pos]; ll mid=(lt+rt)>>1; ll temp=pos<<1; return max(query(temp,lt,mid,a,b),query(temp|1,mid+1,rt,a,b)); } void update(ll pos,ll lt,ll rt,ll a,ll val) { if(a<lt || a>rt || rt<lt) return; if(lt==rt) { arr[pos]={val,lt}; return; } ll mid=(lt+rt)>>1; ll temp=pos<<1; update(temp,lt,mid,a,val),update(temp|1,mid+1,rt,a,val); arr[pos]=max(arr[temp],arr[temp|1]); } }; // int dp[105][105][105]; void solve() { ll n,m; cin>>n>>m; ll sz=2*max(n,m)-1; vector<ll> a(sz),b(sz); ll temp=m>n?sz-(m+n-1):0; for(ll i=0;i<(m+n-1);i++) cin>>a[temp++]; temp=m<n?sz-(m+n-1):0; for(ll i=0;i<(m+n-1);i++) cin>>b[temp++]; ll sum=0; for(ll i=0;i<sz;i++) sum+=a[i]; ll mx=sum; ll trc[2]={0}; ll mn[2]={0}; for(ll i=0;i<max(n,m);i++) { trc[i&1]+=a[i]; if(sz-i-1!=i)trc[i&1]+=a[sz-1-i]; ll j=max(n,m)-1-i; trc[i&1]-=b[j]; if(sz-1-j!=j)trc[i&1]-=b[sz-1-j]; // cout<<temp<<" "; mn[i&1]=max(mn[i&1],trc[i&1]); } mx=min(mx,sum-mn[0]-mn[1]); sum=0; swap(a,b); trc[0]=trc[1]=mn[0]=mn[1]=0; for(ll i=0;i<sz;i++) sum+=a[i]; for(ll i=0;i<max(n,m);i++) { trc[i&1]+=a[i]; if(sz-i-1!=i)trc[i&1]+=a[sz-1-i]; ll j=max(n,m)-1-i; trc[i&1]-=b[j]; if(sz-1-j!=j)trc[i&1]-=b[sz-1-j]; // cout<<temp<<" "; mn[i&1]=max(mn[i&1],trc[i&1]); } mx=min(mx,sum-mn[0]-mn[1]); cout<<mx<<"\n"; } int main(){ ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); int t=1; // cin >> t; for(int i = 1; i <= t; ++i){ solve(); } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...