Submission #76667

#TimeUsernameProblemLanguageResultExecution timeMemory
76667Bodo171Art Class (IOI13_artclass)C++14
49 / 100
192 ms15412 KiB
#include "artclass.h" #include <iostream> #include <vector> #include <cmath> using namespace std; int i,j; const int nmax=505; long double sumR,sumG,sumB,cate; long double d[4][4]={{1708.66,1500.83,1326.18},{925.686,883.002,578.071},{1265.28,1156.13,963.276},{1422.97,807.953,497.835}}; long double a[4]; bool busit[4]; int viz[505][505],r[nmax][nmax],g[nmax][nmax],b[nmax][nmax]; long double d0,d1,d2,d3,dR,culoare; int mn,blanks,cc,n,m; int dl[]={-1,0,1,0}; int dc[]={0,-1,0,1}; long double dist(long double unu[4],long double doi[4]) { d0=unu[0]/unu[1]; d1=unu[0]/unu[2]; d2=doi[0]/doi[1]; d3=doi[0]/doi[2]; dR=unu[1]/unu[2]-doi[1]/doi[2]; d0-=d2;d1-=d3; return (d0*d0+d1*d1+dR*dR); } int abss(int A) { if(A<0) return -A; return A; } void filll(int li,int ci) { cc++;viz[li][ci]=1;int lf,cf; for(int ii=0;ii<4;ii++) { lf=li+dl[ii]; cf=ci+dc[ii]; if((!viz[lf][cf])&&lf>0&&cf>0&&lf<=n&&cf<=m&&abss(r[lf][cf]-r[li][ci])<=3&&abss(g[lf][cf]-g[li][ci])<=3&&abss(b[lf][cf]-b[li][ci])<=3) filll(lf,cf); } } int style(int H, int W, int R[500][500], int G[500][500], int B[500][500]) { for(i=0;i<H;i++) for(j=0;j<W;j++) { sumR+=R[i][j]; sumG+=G[i][j]; sumB+=B[i][j]; r[i+1][j+1]=R[i][j]; g[i+1][j+1]=G[i][j]; b[i+1][j+1]=B[i][j]; } n=H;m=W; for(i=1;i<=n;i++) for(j=1;j<=m;j++) if(!viz[i][j]) { cc=0; filll(i,j); if(cc>H*W/10) busit[1]=busit[2]=1; } cate=H*W; a[0]=sumR/cate;a[1]=sumG/cate;a[2]=sumB/cate;mn=0; culoare=a[0]+a[1]+a[2]; for(i=0;i<4;i++) { if((!busit[i])&&dist(a,d[i])<dist(a,d[mn])) mn=i; } mn++; return mn; }
#Verdict Execution timeMemoryGrader output
Fetching results...