# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
962192 | simona1230 | Art Class (IOI13_artclass) | C++17 | 60 ms | 11120 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 <bits/stdc++.h>
#include "artclass.h"
using namespace std;
int h,w,r[501][501],g[501][501],b[501][501];
int lim;
struct ver
{
int x,y;
ver(){}
ver(int _x,int _y)
{
x=_x;
y=_y;
}
ver operator+(ver v)
{
return {v.x+x,v.y+y};
}
};
int comp[501][501],num;
int fg,fb,fr;
ver p[4]={{1,0},{0,1},{-1,0},{0,-1}};
bool in_range(ver i)
{
return i.x>=0&&i.x<h&&i.y>=0&&i.y<w;
}
bool corr(ver i)
{
return abs(r[i.x][i.y]-fr)<=lim&&abs(g[i.x][i.y]-fg)<=lim&&abs(b[i.x][i.y]-fg)<=lim;
}
void dfs(ver i)
{
comp[i.x][i.y]=num;
for(int j=0;j<4;j++)
{
ver nb=p[j]+i;
if(in_range(nb)&&!comp[nb.x][nb.y]&&corr(i))
dfs(nb);
}
}
int style(int H,int W,int R[500][500],int G[500][500],int B[500][500])
{
h=H;w=W;
for(int i=0;i<h;i++)
{
for(int j=0;j<w;j++)
{
r[i][j]=R[i][j];
g[i][j]=G[i][j];
b[i][j]=B[i][j];
}
}
lim=20;
for(int i=0;i<h;i++)
{
for(int j=0;j<w;j++)
{
num++;
fg=g[i][j];
fb=b[i][j];
fr=r[i][j];
dfs({i,j});
}
}
return 4;
}
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |