省略
省略
C++に変換後のコードはこちら
int X, Y, K, A, B;
Grid2d<int> S;
int ar1[3000], ar2[3000], sz;
{
int x, y, z, k;
int res = 0;
set<int> st;
rd(X,Y,K);
S.malloc(X,Y);
rep(i,X) rep(j,Y) S[i][j] = 1;
rep(K){
rd(A--,B--);
S[A][B] = 0;
}
S.setDirMatch(1);
rep(x,X) rep(y,Y) if(x==0 || y==0){
z = 0;
sz = 0;
for(;;){
if(x+z >= X || y+z >= Y || S[x+z][y+z]==0){
if(sz){
st.clear();
rep(i,sz){
st.insert(i);
for(;;){
k = *(st.lower_bound(i - ar2[i] + 1));
if(ar1[k] >= i - k + 1) break;
st.erase(k);
}
res >?= i - k + 1;
}
sz = 0;
}
if(x+z==X || y+z==Y) break;
z++; continue;
}
arrInsert(sz,sz,ar1,S.dw[x+z][y+z],ar2,S.up[x+z][y+z]);
z++;
}
}
wt(res);
}
Current time: 2024年04月20日02時43分56秒
Last modified: 2019年12月27日22時39分00秒 (by laycrs)
Tags: Competitive_Programming_Incomplete AtCoder
トップページに戻る
Logged in as: unknown user (not login)