Submission #123163

#TimeUsernameProblemLanguageResultExecution timeMemory
123163Mahdi_JfriArt Class (IOI13_artclass)C++14
34 / 100
245 ms17960 KiB
#include "artclass.h" #include<bits/stdc++.h> using namespace std; #define ll long long #define pb push_back #define ld long double const int maxn = 5e2 + 20; const int dx[] = {0 , 0 , -1 , 1}; const int dy[] = {1 ,-1 , 0 , 0}; int style(int n , int m , int R[500][500] , int G[500][500] , int B[500][500]) { vector<int> tmp1 , tmp2 , tmp3; ld mG = 0; for(int x = 0; x < n; x++) for(int y = 0; y < m; y++) { mG += (255 - G[x][y]) * (255 - G[x][y]) + 10 * (R[x][y] + B[x][y]) * (R[x][y] + B[x][y]); for(int i = 0; i < 4; i++) { int nx = x + dx[i] , ny = y + dy[i]; if(0 <= nx && nx < n && 0 <= ny && ny < m) { tmp1.pb(abs(R[x][y] - R[nx][ny])); tmp2.pb(abs(G[x][y] - G[nx][ny])); tmp3.pb(abs(B[x][y] - B[nx][ny])); } } } mG /= n * m; sort(tmp1.begin() , tmp1.end()); sort(tmp2.begin() , tmp2.end()); sort(tmp3.begin() , tmp3.end()); tmp1.erase(tmp1.begin() , tmp1.begin() + 5000); tmp2.erase(tmp2.begin() , tmp2.begin() + 5000); tmp3.erase(tmp3.begin() , tmp3.begin() + 5000); int sum1 = 0 , sum2 = 0 , sum3 = 0 , sz = tmp1.size(); for(int i = 0; i < (int)tmp1.size(); i++) { sum1 += tmp1[i]; sum2 += tmp2[i]; sum3 += tmp3[i]; } sum1 += sum2 + sum3; sz *= 3; if(mG <= 5e5) return 2; if(sum1 / (ld)sz <= 13) return 4; return 3; }
#Verdict Execution timeMemoryGrader output
Fetching results...