提出 #7343284
ソースコード 拡げる
#pragma GCC optimize ("Ofast")
#include<bits/stdc++.h>
using namespace std;
template<class S, class T> inline S min_L(S a,T b){
return a<=b?a:b;
}
template<class S, class T> inline S max_L(S a,T b){
return a>=b?a:b;
}
template<class T> void malloc1d(T **arr, int x){
(*arr) = (T*)malloc(x*sizeof(T));
}
template<class T> void free1d(T *arr){
free(arr);
}
inline void rd(int &x){
int k, m=0;
x=0;
for(;;){
k = getchar_unlocked();
if(k=='-'){
m=1;
break;
}
if('0'<=k&&k<='9'){
x=k-'0';
break;
}
}
for(;;){
k = getchar_unlocked();
if(k<'0'||k>'9'){
break;
}
x=x*10+k-'0';
}
if(m){
x=-x;
}
}
inline void rd(long long &x){
int k, m=0;
x=0;
for(;;){
k = getchar_unlocked();
if(k=='-'){
m=1;
break;
}
if('0'<=k&&k<='9'){
x=k-'0';
break;
}
}
for(;;){
k = getchar_unlocked();
if(k<'0'||k>'9'){
break;
}
x=x*10+k-'0';
}
if(m){
x=-x;
}
}
inline void wt_L(char a){
putchar_unlocked(a);
}
inline void wt_L(long long x){
char f[20];
int m=0, s=0;
if(x<0){
m=1;
x=-x;
}
while(x){
f[s++]=x%10;
x/=10;
}
if(!s){
f[s++]=0;
}
if(m){
putchar_unlocked('-');
}
while(s--){
putchar_unlocked(f[s]+'0');
}
}
template<class S, class T> inline S chmin(S &a, T b){
if(a>b){
a=b;
}
return a;
}
template<class T> struct Grid1d{
T *d, *d_s;
int *dw, *lf, n, *rg, set_d, set_s, *up;
void malloc(const int nn){
n = nn;
set_s = 0;
set_d = 0;
malloc1d(&d, n);
}
void free(void){
free1d(d);
if(set_s){
free1d(d_s);
}
if(set_d){
free1d(up);
free1d(dw);
}
}
T& operator[](int a){
return d[a];
}
void setSum(void){
int i;
if(set_s == 0){
set_s = 1;
malloc1d(&d_s, n+1);
}
d_s[0] = 0;
for(i=0;i<(n);i++){
d_s[i+1] = d_s[i] + d[i];
}
}
void setDir(void){
int i;
if(set_d == 0){
set_d = 1;
malloc1d(&up, n);
malloc1d(&dw, n);
lf = dw;
rg = up;
}
lf[0] = 1;
for(i=(1);i<(n);i++){
if(d[i]==d[i-1]){
lf[i] = 1 + lf[i-1];
}
else{
lf[i] = 1 ;
}
}
rg[n-1] = 1;
for(i=n-2;i>=0;i--){
if(d[i]==d[i+1]){
rg[i] = 1 + rg[i+1];
}
else{
rg[i] = 1 ;
}
}
}
void setDirMatch(const T v){
int i;
if(set_d == 0){
set_d = 1;
malloc1d(&up, n);
malloc1d(&dw, n);
lf = dw;
rg = up;
}
if(d[0]==v){
lf[0] =1;
}
else{
lf[0] =0;
}
for(i=(1);i<(n);i++){
if(d[i]==v){
lf[i] =1 + lf[i-1];
}
else{
lf[i] =0;
}
}
if(d[n-1]==v){
rg[n-1] =1;
}
else{
rg[n-1] =0;
}
for(i=n-2;i>=0;i--){
if(d[i]==v){
rg[i] =1 + rg[i+1];
}
else{
rg[i] =0;
}
}
}
inline T getSum(const int a, const int b){
return d_s[b+1] - d_s[a];
}
}
;
int N;
Grid1d<long long> A;
int main(){
int i, j, k, x, y;
long long a, b, c, d, res=4611686016279904256LL;
rd(N);
A.malloc(N+1);
{
int Lj4PdHRW;
for(Lj4PdHRW=0;Lj4PdHRW<(N);Lj4PdHRW++){
rd(A[Lj4PdHRW]);
}
}
A.setSum();
x = y = 0;
for(i=0;i<(N);i++){
while(x+1 < N && A.getSum(x+1,i) >= A.getSum(0,x)){
x++;
}
while(y+1 < N && A.getSum(y+1,N-1) >= A.getSum(i+1,y)){
y++;
}
for(j=0;j<(2);j++){
for(k=0;k<(2);k++){
a = A.getSum(0,x-1+j);
b = A.getSum(x+j,i);
c = A.getSum(i+1,y-1+k);
d = A.getSum(y+k,N-1);
chmin(res, max_L(max_L(max_L(a, b), c), d)-min_L(min_L(min_L(a, b), c), d));
}
}
}
wt_L(res);
wt_L('\n');
return 0;
}
// cLay varsion 20190902-1
// --- original code ---
// int N;
// Grid1d<ll> A;
// {
// int i, j, k, x, y;
// ll a, b, c, d;
// ll res = ll_inf;
//
// rd(N);
// A.malloc(N+1);
// rd(A(N));
// A.setSum();
//
// x = y = 0;
// rep(i,N){
// while(x+1 < N && A.getSum(x+1,i) >= A.getSum(0,x)) x++;
// while(y+1 < N && A.getSum(y+1,N-1) >= A.getSum(i+1,y)) y++;
// rep(j,2) rep(k,2){
// a = A.getSum(0,x-1+j);
// b = A.getSum(x+j,i);
// c = A.getSum(i+1,y-1+k);
// d = A.getSum(y+k,N-1);
// res <?= max(a,b,c,d) - min(a,b,c,d);
// }
// }
//
// wt(res);
// }
提出情報
| 提出日時 |
|
| 問題 |
D - Equal Cut |
| ユーザ |
LayCurse |
| 言語 |
C++14 (GCC 5.4.1) |
| 得点 |
600 |
| コード長 |
4703 Byte |
| 結果 |
AC |
| 実行時間 |
11 ms |
| メモリ |
3328 KiB |
ジャッジ結果
| セット名 |
Sample |
All |
| 得点 / 配点 |
0 / 0 |
600 / 600 |
| 結果 |
|
|
| セット名 |
テストケース |
| Sample |
sample_01.txt, sample_02.txt, sample_03.txt |
| All |
sample_01.txt, sample_02.txt, sample_03.txt, sample_01.txt, sample_02.txt, sample_03.txt, subtask_1_01.txt, subtask_1_02.txt, subtask_1_03.txt, subtask_1_04.txt, subtask_1_05.txt, subtask_1_06.txt, subtask_1_07.txt, subtask_1_08.txt, subtask_1_09.txt, subtask_1_10.txt, subtask_1_11.txt, subtask_1_12.txt, subtask_1_13.txt, subtask_1_14.txt, subtask_1_15.txt, subtask_1_16.txt, subtask_1_17.txt, subtask_1_18.txt, subtask_1_19.txt, subtask_1_20.txt, subtask_1_21.txt, subtask_1_22.txt, subtask_1_23.txt, subtask_1_24.txt, subtask_1_25.txt, subtask_1_26.txt, subtask_1_27.txt, subtask_1_28.txt, subtask_1_29.txt, subtask_1_30.txt, subtask_1_31.txt, subtask_1_32.txt, subtask_1_33.txt, subtask_1_34.txt, subtask_1_35.txt, subtask_1_36.txt, subtask_1_37.txt |
| ケース名 |
結果 |
実行時間 |
メモリ |
| sample_01.txt |
AC |
1 ms |
256 KiB |
| sample_02.txt |
AC |
1 ms |
256 KiB |
| sample_03.txt |
AC |
1 ms |
256 KiB |
| subtask_1_01.txt |
AC |
1 ms |
256 KiB |
| subtask_1_02.txt |
AC |
11 ms |
3072 KiB |
| subtask_1_03.txt |
AC |
5 ms |
1536 KiB |
| subtask_1_04.txt |
AC |
8 ms |
2176 KiB |
| subtask_1_05.txt |
AC |
1 ms |
256 KiB |
| subtask_1_06.txt |
AC |
2 ms |
640 KiB |
| subtask_1_07.txt |
AC |
6 ms |
2048 KiB |
| subtask_1_08.txt |
AC |
4 ms |
1408 KiB |
| subtask_1_09.txt |
AC |
6 ms |
1920 KiB |
| subtask_1_10.txt |
AC |
6 ms |
2688 KiB |
| subtask_1_11.txt |
AC |
8 ms |
3072 KiB |
| subtask_1_12.txt |
AC |
4 ms |
1664 KiB |
| subtask_1_13.txt |
AC |
6 ms |
2176 KiB |
| subtask_1_14.txt |
AC |
2 ms |
896 KiB |
| subtask_1_15.txt |
AC |
2 ms |
640 KiB |
| subtask_1_16.txt |
AC |
4 ms |
1920 KiB |
| subtask_1_17.txt |
AC |
4 ms |
1664 KiB |
| subtask_1_18.txt |
AC |
1 ms |
384 KiB |
| subtask_1_19.txt |
AC |
7 ms |
3072 KiB |
| subtask_1_20.txt |
AC |
11 ms |
3072 KiB |
| subtask_1_21.txt |
AC |
6 ms |
1792 KiB |
| subtask_1_22.txt |
AC |
4 ms |
1152 KiB |
| subtask_1_23.txt |
AC |
8 ms |
2816 KiB |
| subtask_1_24.txt |
AC |
8 ms |
3328 KiB |
| subtask_1_25.txt |
AC |
8 ms |
3328 KiB |
| subtask_1_26.txt |
AC |
8 ms |
3328 KiB |
| subtask_1_27.txt |
AC |
8 ms |
3328 KiB |
| subtask_1_28.txt |
AC |
8 ms |
3328 KiB |
| subtask_1_29.txt |
AC |
9 ms |
3328 KiB |
| subtask_1_30.txt |
AC |
8 ms |
3328 KiB |
| subtask_1_31.txt |
AC |
8 ms |
3328 KiB |
| subtask_1_32.txt |
AC |
8 ms |
3328 KiB |
| subtask_1_33.txt |
AC |
8 ms |
3328 KiB |
| subtask_1_34.txt |
AC |
7 ms |
3328 KiB |
| subtask_1_35.txt |
AC |
7 ms |
3328 KiB |
| subtask_1_36.txt |
AC |
7 ms |
3328 KiB |
| subtask_1_37.txt |
AC |
7 ms |
3328 KiB |