# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
4543 | ainta | Treasure (different grader from official contest) (CEOI13_treasure2) | C++98 | 0 ms | 1420 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "treasure.h"
int D[4][110][110],Mid,n,w[110][110],Sx[110],Sy[110];
int mx(int a,int b){return a<b?b:a;}
int mn(int a,int b){return a<b?a:b;}
void Do(int a){
int x,y,x1,y1,x2,y2,i,j;
if(a<2)x=1,x1=Mid,x2=n;
else x=n,x1=1,x2=Mid;
if(a%2==0)y=1,y1=Mid,y2=n;
else y=n,y1=1,y2=Mid;
for(i=x1;i<=x2;i++){
for(j=y1;j<=y2;j++){
if(x+i==n+1 && y+j==n+1)continue;
if(a==1 && j==1){D[a][i][j]=D[0][i][n];continue;}
if(a==2 && i==1){D[a][i][j]=D[0][n][j];continue;}
if(a==3 && i==1){D[a][i][j]=D[1][n][j];continue;}
if(a==3 && j==1){D[a][i][j]=D[2][i][n];continue;}
D[a][i][j]=countTreasure(mn(x,i),mn(y,j),mx(x,i),mx(y,j));
}
}
}
void findTreasure (int N) {
int i,j,s;
n=N,Mid=(N+1)/2;
D[0][n][n]=D[1][n][1]=D[2][1][n]=D[3][1][1]=countTreasure(1,1,n,n);
Do(0);
Do(1);
Do(2);
Do(3);
for(i=Mid+1;i<=n;i++)
for(j=Mid+1;j<=n;j++)
w[i][j]=(D[0][i][j]-D[0][i][j-1]) - (D[0][i-1][j]-D[0][i-1][j-1]);
for(i=Mid+1;i<=n;i++)
for(j=1;j<Mid;j++)
w[i][j]=(D[1][i][j]-D[1][i][j+1]) - (D[1][i-1][j]-D[1][i-1][j+1]);
for(i=1;i<Mid;i++)
for(j=Mid+1;j<=n;j++)
w[i][j]=(D[2][i][j]-D[2][i][j-1]) - (D[2][i+1][j]-D[2][i+1][j-1]);
for(i=1;i<Mid;i++)
for(j=1;j<Mid;j++)
w[i][j]=(D[3][i][j]-D[3][i][j+1]) - (D[3][i+1][j]-D[3][i+1][j+1]);
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
Sx[i]+=w[i][j],Sy[j]+=w[i][j];
for(i=1;i<Mid;i++){
w[Mid][i]=(D[3][1][i]-D[3][1][i+1])-Sy[i];
w[i][Mid]=(D[3][i][1]-D[3][i+1][1])-Sx[i];
}
for(i=Mid+1;i<=n;i++){
w[Mid][i]=(D[0][n][i]-D[0][n][i-1])-Sy[i];
w[i][Mid]=(D[0][i][n]-D[0][i-1][n])-Sx[i];
}
s=0;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
s+=w[i][j];
w[Mid][Mid]=D[0][n][n]-s;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if(w[i][j])Report(i,j);
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |