Submission #140265

#TimeUsernameProblemLanguageResultExecution timeMemory
140265cfalasArt Class (IOI13_artclass)C++14
45 / 100
233 ms11484 KiB
#include<bits/stdc++.h> using namespace std; #include "artclass.h" typedef pair<int, int> ii; typedef pair<int, ii> iii; #define F first #define S second int style(int h, int w, int r[500][500], int g[500][500], int b[500][500]) { double tot = 0; double totr=0, totg=0, totb=0; set<iii> colors; set<iii> allcolors; int dr=0, dg=0, db=0; int light = 0, dark = 0; map<iii, int> colfreq; for(int i=3;i<h;i++){ for(int j=0;j<w;j++){ tot+=r[i][j]+g[i][j]+b[i][j]; totr+=r[i][j]; totg+=g[i][j]; totb+=b[i][j]; colors.insert(iii(r[i][j]/64, ii(g[i][j]/64, b[i][j]/64))); allcolors.insert(iii(r[i][j], ii(g[i][j], b[i][j]))); colfreq[iii(r[i][j]/16, ii(g[i][j]/16, b[i][j]/16))]++; if(r[i][j]>g[i][j] && r[i][j]>b[i][j]) dr++; if(g[i][j]>b[i][j] && g[i][j]>r[i][j]) dg++; if(b[i][j]>r[i][j] && b[i][j]>g[i][j]) db++; if(r[i][j] + g[i][j] + b[i][j] < 50) dark++; else if(r[i][j] + g[i][j] + b[i][j] > 300) light++; } } vector<pair<int, iii> > v; for(map<iii,int>::iterator it = colfreq.begin();it!=colfreq.end();it++){ v.push_back(make_pair((*it).S, (*it).F)); } sort(v.begin(), v.end()); double totcommoncolors = 0; for(int i=v.size()-1;i>=v.size()-10;i--){ totcommoncolors+=v[i].F; } if(colors.size()<=20 || dr>(dg+db)*30) return 4; if(dr+dg>db*8 && totr+totg > 3*totb) return 2; if(totcommoncolors/(w*h)>0.5) return 1; if(dark+light*2 > w*h && allcolors.size()>30000 && colors.size()>20) return 3; //if(totg > totb && totb<totr) return 2; return 1; }

Compilation message (stderr)

artclass.cpp: In function 'int style(int, int, int (*)[500], int (*)[500], int (*)[500])':
artclass.cpp:39:24: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for(int i=v.size()-1;i>=v.size()-10;i--){
                       ~^~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...