Submission #2530761
Source Code Expand
#include<bits/stdc++.h>
using namespace std;
using ll=long long;
using T=vector<ll>;
class SegmentTree{
int N;
int M;
vector<T> dat;
T merge(T& x,T& y){
T res(x.size());
for(int i=0;i<x.size();i++){
res[i]=max(x[i],y[i]);
}
return res;
}
T query_impl(int a,int b,int k,int l,int r){
if(a<=l && r<=b) return dat[k];
if(b<=l || r<=a) return T(M);
int mid=(l+r)/2;
T x1=query_impl(a,b,k*2+1,l,mid);
T x2=query_impl(a,b,k*2+2,mid,r);
return merge(x1,x2);
}
public:
SegmentTree(int n,int m):M(m){
N=1;
while(N<n){
N*=2;
}
dat.assign(2*N-1,T(m,0));
}
void update(int pos,T& vec){
pos+=N-1;
dat[pos]=vec;
while(pos){
int par=(pos-1)/2;
int c1=par*2+1;
int c2=par*2+2;
dat[par]=merge(dat[c1],dat[c2]);
pos=par;
}
}
ll query(int a,int b){
T res=query_impl(a,b,0,0,N);
return accumulate(res.begin(),res.end(),0LL);
}
};
vector<ll> asum;
ll dfs(int a,int b,int lb,int ub,SegmentTree& seg){
if(a==b) return 0;
int mid=(a+b)/2;
int opt=max(lb,mid);
ll res=0;
for(int i=max(lb,mid);i<ub;i++){
ll sc=seg.query(mid,i+1)-(asum[i]-asum[mid]);
if(res<sc){
opt=i;
res=sc;
}
}
ll lres=dfs(a,mid,lb,opt+1,seg);
ll rres=dfs(mid+1,b,max(opt-1,0),ub,seg);
return max({lres,rres,res});
}
int main(){
int n,m;
cin>>n>>m;
vector<ll> a(n-1);
asum.assign(n,0);
for(int i=0;i<n-1;i++){
cin>>a[i];
}
for(int i=0;i<n-1;i++){
asum[i+1]=asum[i]+a[i];
}
vector<vector<ll>> b(n,vector<ll>(m));
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
cin>>b[i][j];
}
}
SegmentTree seg(n,m);
for(int i=0;i<n;i++) seg.update(i,b[i]);
cout<<dfs(0,n,0,n,seg)<<endl;
return 0;
}
Submission Info
Submission Time |
|
Task |
F - Yakiniku Restaurants |
User |
nikutto |
Language |
C++14 (GCC 5.4.1) |
Score |
1000 |
Code Size |
2130 Byte |
Status |
AC |
Exec Time |
1131 ms |
Memory |
34560 KB |
Judge Result
Set Name |
Sample |
All |
Score / Max Score |
0 / 0 |
1000 / 1000 |
Status |
|
|
Set Name |
Test Cases |
Sample |
sample_01.txt, sample_02.txt |
All |
sample_01.txt, sample_02.txt, subtask_1_dense_max_01.txt, subtask_1_dense_max_02.txt, subtask_1_dense_max_03.txt, subtask_1_dense_max_04.txt, subtask_1_dense_rand_01.txt, subtask_1_dense_rand_02.txt, subtask_1_dense_rand_03.txt, subtask_1_dense_rand_04.txt, subtask_1_max_01.txt, subtask_1_max_02.txt, subtask_1_max_03.txt, subtask_1_max_04.txt, subtask_1_min_01.txt, subtask_1_min_02.txt, subtask_1_rand_01.txt, subtask_1_rand_02.txt, subtask_1_rand_03.txt, subtask_1_rand_04.txt, subtask_1_widemax_01.txt, subtask_1_widemax_02.txt, subtask_1_widemax_03.txt, subtask_1_widemax_04.txt, subtask_1_widemax_05.txt, subtask_1_widemax_06.txt, subtask_1_widemax_07.txt, subtask_1_widemax_08.txt, subtask_1_widemax_09.txt, subtask_1_widemax_10.txt |
Case Name |
Status |
Exec Time |
Memory |
sample_01.txt |
AC |
1 ms |
256 KB |
sample_02.txt |
AC |
1 ms |
256 KB |
subtask_1_dense_max_01.txt |
AC |
1102 ms |
34560 KB |
subtask_1_dense_max_02.txt |
AC |
1100 ms |
34560 KB |
subtask_1_dense_max_03.txt |
AC |
1097 ms |
34560 KB |
subtask_1_dense_max_04.txt |
AC |
1083 ms |
34560 KB |
subtask_1_dense_rand_01.txt |
AC |
649 ms |
17152 KB |
subtask_1_dense_rand_02.txt |
AC |
709 ms |
18048 KB |
subtask_1_dense_rand_03.txt |
AC |
33 ms |
1024 KB |
subtask_1_dense_rand_04.txt |
AC |
166 ms |
3840 KB |
subtask_1_max_01.txt |
AC |
884 ms |
34560 KB |
subtask_1_max_02.txt |
AC |
884 ms |
34560 KB |
subtask_1_max_03.txt |
AC |
884 ms |
34560 KB |
subtask_1_max_04.txt |
AC |
883 ms |
34560 KB |
subtask_1_min_01.txt |
AC |
1 ms |
256 KB |
subtask_1_min_02.txt |
AC |
1 ms |
256 KB |
subtask_1_rand_01.txt |
AC |
126 ms |
4480 KB |
subtask_1_rand_02.txt |
AC |
82 ms |
2176 KB |
subtask_1_rand_03.txt |
AC |
145 ms |
5632 KB |
subtask_1_rand_04.txt |
AC |
219 ms |
6784 KB |
subtask_1_widemax_01.txt |
AC |
1106 ms |
34560 KB |
subtask_1_widemax_02.txt |
AC |
1109 ms |
34560 KB |
subtask_1_widemax_03.txt |
AC |
1115 ms |
34560 KB |
subtask_1_widemax_04.txt |
AC |
1110 ms |
34560 KB |
subtask_1_widemax_05.txt |
AC |
1108 ms |
34560 KB |
subtask_1_widemax_06.txt |
AC |
1131 ms |
34560 KB |
subtask_1_widemax_07.txt |
AC |
1100 ms |
34560 KB |
subtask_1_widemax_08.txt |
AC |
1107 ms |
34560 KB |
subtask_1_widemax_09.txt |
AC |
1109 ms |
34560 KB |
subtask_1_widemax_10.txt |
AC |
1102 ms |
34560 KB |