Submission #1012589

#TimeUsernameProblemLanguageResultExecution timeMemory
1012589amirhoseinfar1385Art Class (IOI13_artclass)C++17
25 / 100
48 ms14684 KiB
#include "artclass.h"
#include<bits/stdc++.h>
using namespace std;
const int maxn=500+10;
int vis[maxn][maxn],all[maxn][maxn],n=500;

void dfs(int i,int j){
    if(i<1||i>n||j<1||j>n||vis[i][j]==1||all[i][j]==0){
        return ;
    }
    vis[i][j]=1; 
    for(int a=-1;a<=1;a++){
        for(int b=-1;b<=1;b++){
            dfs(i+a,j+b);
        }
    }
}

int style(int H, int W, int R[500][500], int G[500][500], int B[500][500]) {
    int cn4=0;
    for(int i=1;i<=n-1;i++){
        for(int j=1;j<=n-1;j++){
            if(abs(G[i][j]-G[i][j+1])>40||abs(R[i][j]-R[i][j+1])>40||abs(B[i][j]-B[i][j+1])>40){
                cn4++;
            }
        }
    }
    if(cn4<=n*5){
        return 4;
    }
    int cnt=0;
    for(int i=1;i<=n;i++){
        for(int j=1;j<=n;j++){
            if(max(R[i][j],max(G[i][j],B[i][j]))-min(R[i][j],min(G[i][j],B[i][j]))<=20&&max(R[i][j],max(G[i][j],B[i][j]))<=50){
                all[i][j]=1;
            }
        }
    }
    for(int i=1;i<=n;i++){
        for(int j=1;j<=n;j++){
            if(vis[i][j]==0&&all[i][j]==1){
                dfs(i,j);
                cnt++;
            }
        }
    }
    if(cnt<=10){
        return 1;
    }
    int cn2=0;
    for(int i=1;i<=n;i++){
        for(int j=1;j<=n;j++){
            if(G[i][j]>=100&&max(R[i][j],B[i][j])<=G[i][j]+30){
                cn2++;
            }
        }
    }
    if(cn2*40>=500*500){
        return 2;
    }
    return 3;
}
#Verdict Execution timeMemoryGrader output
Fetching results...