Submission #962179

#TimeUsernameProblemLanguageResultExecution timeMemory
962179simona1230Art Class (IOI13_artclass)C++17
0 / 100
70 ms10580 KiB
#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=15;
    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});
        }
    }

    if(num<=50)return 1;
    return 2;

}
#Verdict Execution timeMemoryGrader output
Fetching results...