제출 #885602

#제출 시각아이디문제언어결과실행 시간메모리
885602gustavo_d미술 수업 (IOI13_artclass)C++17
100 / 100
67 ms8408 KiB
#include "artclass.h" #include <bits/stdc++.h> using namespace std; typedef long long ll; mt19937 randn(time(0)); struct Pixel { int r, g, b; Pixel() { r=-1, g=-1; b=-1; } Pixel(int red, int green, int blue) { r = red; g = green; b = blue; } bool operator != (Pixel &pixel) { if (pixel.r != r or pixel.g != g or pixel.b != b) return true; return false; } }; int style(int H, int W, int R[500][500], int G[500][500], int B[500][500]) { Pixel img[H][W]; for (int i=0; i<H; i++) { for (int j=0; j<W; j++) { img[i][j] = Pixel(R[i][j], G[i][j], B[i][j]); } } ll total_dist = 0; for (int i=1; i<H-1; i++) { for (int j=1; j<W-1; j++) { vector<int> dif(3); dif = {-1, 0, 1}; for (int di : dif) { for (int dj : dif) { total_dist += abs(img[i][j].r - img[i+di][j+dj].r); total_dist += abs(img[i][j].g - img[i+di][j+dj].g); total_dist += abs(img[i][j].b - img[i+di][j+dj].b); } } } } total_dist /= ((ll)H*(ll)W); // 450+ é 3 double changes = 0; for (int i=0; i<H; i++) { Pixel last = img[i][0]; for (int j=1; j<W; j++) { if (last != img[i][j]) changes++; last = img[i][j]; } } changes *= 100.0 / H; // pra porcentagem changes /= W; // 95%+ é 2 ou 3 double r=0, g=0, b=0; for (int i=0; i<H; i++) { for (int j=0; j<W; j++) { if (img[i][j].r > img[i][j].g and img[i][j].r > img[i][j].b) r++; if (img[i][j].g > img[i][j].r and img[i][j].g > img[i][j].b) g++; if (img[i][j].b > img[i][j].g and img[i][j].b > img[i][j].r) b++; } } double red = r / (W * H); double green = g / (W * H); double blue = b / (W * H); //cout << red << ' ' << green << ' ' << blue << '\n'; if (changes >= 97 and green >= 0.01) { // 2 ou 3 > mais verde if (total_dist >= 450) return 3; // dividir pelo tamanho da imagem else return 2; } else { // 1 ou 4 if (total_dist <= 100) return 4; else return 1; } return 4; }

컴파일 시 표준 에러 (stderr) 메시지

artclass.cpp: In function 'int style(int, int, int (*)[500], int (*)[500], int (*)[500])':
artclass.cpp:69:9: warning: unused variable 'red' [-Wunused-variable]
   69 |  double red = r / (W * H);
      |         ^~~
artclass.cpp:71:9: warning: unused variable 'blue' [-Wunused-variable]
   71 |  double blue = b / (W * H);
      |         ^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...