제출 #586642

#제출 시각아이디문제언어결과실행 시간메모리
586642yutabi미술 수업 (IOI13_artclass)C++14
100 / 100
64 ms3268 KiB
#include "artclass.h"

#include <bits/stdc++.h>
using namespace std;



int green;

int diff_h;
int diff_v;

int diff_h_b;
int diff_v_b;

int white;

int change_h[500];
int change_v[500];


int aaaaa;


int style(int H, int W, int R[500][500], int G[500][500], int B[500][500])
{
    for(int i=0;i<H;i++)
    {
        for(int j=0;j<W-1;j++)
        {
            if(abs(R[i][j]-R[i][j+1])+abs(G[i][j]-G[i][j+1])+abs(B[i][j]-B[i][j+1])>50)
            {
                diff_h++;

                change_h[i]++;
            }
            
            if(abs(R[i][j]-R[i][j+1])+abs(G[i][j]-G[i][j+1])+abs(B[i][j]-B[i][j+1])>100)
            {
                diff_h_b++;
            }
        }
    }
    
    for(int i=0;i<H-1;i++)
    {
        for(int j=0;j<W;j++)
        {
            if(abs(R[i][j]-R[i+1][j])+abs(G[i][j]-G[i+1][j])+abs(B[i][j]-B[i+1][j])>50)
            {
                diff_v++;

                change_v[j]++;
            }
            
            if(abs(R[i][j]-R[i+1][j])+abs(G[i][j]-G[i+1][j])+abs(B[i][j]-B[i+1][j])>100)
            {
                diff_v_b++;
            }
        }
    }
    
    
    for(int i=0;i<H;i++)
    {
        for(int j=0;j<W;j++)
        {
            //if(G[i][j]>R[i][j] && G[i][j]>B[i][j] && R[i][j]+B[i][j]<180 && G[i][j]>100)
            if(G[i][j]*7>R[i][j]*8 && G[i][j]*7>B[i][j]*8)
            {
                green++;
            }

            if((R[i][j]>240) && (G[i][j]>240) && (B[i][j]>240))
            {
                white++;
            }
        }
    }

    for(int i=0;i<H;i++)
    {
        if(change_h[i]*300*H>diff_h*500)
        {
            aaaaa++;
        }
    }
    
    for(int i=0;i<W;i++)
    {
        if(change_v[i]*300*W>diff_v*500)
        {
            aaaaa++;
        }
    }

    //printf("%d %d %d %d %d\n",diff_h,diff_v,diff_h_b,diff_v_b,aaaaa);

    if(diff_h_b+diff_v_b<3000)
    {
        return 4;
    }

    if((diff_h+diff_v)*10>(diff_h_b+diff_v_b)*21)
    {
        return 2;
    }

    if(aaaaa)
    {
        return 1;
    }

    return 3;
}
#Verdict Execution timeMemoryGrader output
Fetching results...