# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
4854 | cki86201 | 최솟값 배열 (IZhO11_hyper) | C++98 | 480 ms | 24536 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include<stdio.h>
int inp[4][35][35][35][35];
struct deq{
int p[35],f,r;
void push(int x){
while(f!=r&&p[f-1]>x)f--;
p[f++]=x;
}
void init(){f=r=0;}
inline void pop(int x){if(p[r]==x)r++;}
inline int read(){return p[r];}
}Dq;
int main(){
int i,j,k,l,n,m;
scanf("%d%d",&n,&m);
for(i=0;i<n;i++)for(j=0;j<n;j++)for(k=0;k<n;k++)for(l=0;l<n;l++)scanf("%d",inp[0][l][i][j]+k);
for(i=0;i<n;i++)for(j=0;j<n;j++)for(k=0;k<n;k++){
Dq.init();
for(l=0;l<m;l++)Dq.push(inp[0][i][j][k][l]);
inp[1][i][j][k][m-1] = Dq.read();
for(l=m;l<n;l++){
Dq.pop(inp[0][i][j][k][l-m]);
Dq.push(inp[0][i][j][k][l]);
inp[1][i][j][k][l] = Dq.read();
}
}
for(i=0;i<n;i++)for(j=0;j<n;j++)for(l=m-1;l<n;l++){
Dq.init();
for(k=0;k<m;k++)Dq.push(inp[1][i][j][k][l]);
inp[2][i][j][m-1][l] = Dq.read();
for(k=m;k<n;k++){
Dq.pop(inp[1][i][j][k-m][l]);
Dq.push(inp[1][i][j][k][l]);
inp[2][i][j][k][l] = Dq.read();
}
}
for(i=0;i<n;i++)for(k=m-1;k<n;k++)for(l=m-1;l<n;l++){
Dq.init();
for(j=0;j<m;j++)Dq.push(inp[2][i][j][k][l]);
inp[3][i][m-1][k][l] = Dq.read();
for(j=m;j<n;j++){
Dq.pop(inp[2][i][j-m][k][l]);
Dq.push(inp[2][i][j][k][l]);
inp[3][i][j][k][l] = Dq.read();
}
}
for(j=m-1;j<n;j++)for(k=m-1;k<n;k++)for(l=m-1;l<n;l++){
Dq.init();
for(i=0;i<m;i++)Dq.push(inp[3][i][j][k][l]);
printf("%d ",Dq.read());
for(i=m;i<n;i++){
Dq.pop(inp[3][i-m][j][k][l]);
Dq.push(inp[3][i][j][k][l]);
printf("%d ",Dq.read());
}
}
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |