Submission #235875

#TimeUsernameProblemLanguageResultExecution timeMemory
235875cfalasArt Class (IOI13_artclass)C++14
8 / 100
81 ms6136 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]) { int blackcount=0; int wcount=0; int gcount=0; for(int i=0;i<h;i++){ for(int j=0;j<w;j++){ if(r[i][j]+b[i][j]+g[i][j]<=50) blackcount++; else if(r[i][j]+b[i][j]+g[i][j]>=700) wcount++; if(g[i][j]>=150) gcount++; } } //cout<<gcount/((double)h*w)<<endl; //cout<<blackcount<<endl; if(wcount>0.07*h*w) return 1; if(gcount>0.1*h*w) return 2; return 4; /*ios::sync_with_stdio(false); double tot = 0; double totr=0, totg=0, totb=0; set<iii> colors; set<iii> allcolors; double dr=0, dg=0, db=0; double light = 0, dark = 0; map<int, int> colfreq; ofstream fout("changed.ppm"); fout<<"P3\n"<<w<<" "<<h<<endl<<1<<endl; int rn[w/20+10][h/20+10]; int gn[w/20+10][h/20+10]; int bn[w/20+10][h/20+10]; int cn[w/20+10][h/20+10]; for(int i=0;i<h/20;i++){ for(int j=0;j<w/20;j++){ rn[j][i] = 0; gn[j][i] = 0; bn[j][i] = 0; cn[j][i] = 1; } } 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]/128, ii(g[i][j]/128, b[i][j]/128))); allcolors.insert(iii(r[i][j], ii(g[i][j], b[i][j]))); colfreq[((r[i][j]*0.3) + (g[i][j]*0.59) + (b[i][j]*0.11))]++; 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++; fout<<r[i][j]/128<<" "<<g[i][j]/128<<" "<<b[i][j]/128<<endl; rn[j/20][i/20]+=r[i][j]; gn[j/20][i/20]+=g[i][j]; bn[j/20][i/20]+=b[i][j]; cn[j/20][i/20]++; } } fout.close(); fout.clear(); fout.open("changed2.ppm"); fout<<"P3\n"<<w/20<<" "<<h/20<<endl<<255<<endl; for(int i=0;i<h/20;i++){ for(int j=0;j<w/20;j++){ fout<<rn[j][i]/cn[j][i]<<" "<<gn[j][i]/cn[j][i]<<" "<<bn[j][i]/cn[j][i]<<endl; } } fout.close(); fout.clear(); fout.open("redhist.txt"); for(int i=0;i<64;i++){ for(int j=0;j<(colfreq[4*i] + colfreq[4*i+1] + colfreq[4*i+2] + colfreq[4*i+3])/360;j++) fout<<"*"; fout<<endl; } cout<<totr/(tot)<<" "<<totg/(tot)<<" "<<totb/(tot)<<endl; cout<<colors.size()<<endl; cout<<dr/(w*h)<<" "<<dg/(w*h)<<" "<<db/(w*h)<<endl; cout<<light/(w*h)<<" "<<dark/(w*h)<<endl; cout<<allcolors.size()<<endl; 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; } cout<<totcommoncolors/(w*h)<<endl;*./ if(totr/tot<0.5 && dr+dg>db*8 && totr+totg > 3*totb && colors.size()>=5) return 2; if(totr/tot>0.5 && colors.size()<=7 /.*|| light==0 || dark==0*./) return 4; if(colors.size()<=3) return 4; //if(totcommoncolors/(w*h)>0.5) return 1; if(dark+light*2 > w*h && allcolors.size()>30000 && colors.size()>=6) return 3; //if(totg > totb && totb<totr) return 2; return 1;*/ }
#Verdict Execution timeMemoryGrader output
Fetching results...