답안 #573734

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
573734 2022-06-07T06:20:22 Z Theo830 미술 수업 (IOI13_artclass) C++17
47 / 100
109 ms 9004 KB
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ll INF = 1e9+7;
ll MOD = 998244353;
typedef pair<ll,ll> ii;
#define iii pair<ll,ii>
#define f(i,a,b) for(ll i = a;i < b;i++)
#define pb push_back
#define vll vector<ll>
#define F first
#define S second
#define all(x) (x).begin(), (x).end()
///I hope I will get uprating and don't make mistakes
///I will never stop programming
///sqrt(-1) Love C++
///Please don't hack me
///@TheofanisOrfanou Theo830
///Think different approaches (bs,dp,greedy,graphs,shortest paths,mst)
///Stay Calm
///Look for special cases
///Beware of overflow and array bounds
///Think the problem backwards
///Deltix Round, Spring 2021 (open for everyone, rated, Div. 1 + Div. 2)
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
uniform_int_distribution<ll> distr;
ll rnd(ll a, ll b){return distr(rng)%(b-a+1)+a;}
#include "artclass.h"
/*
#ifndef __ARTCLASS_H__
#define __ARTCLASS_H__

#ifdef __cplusplus
extern "C" {
#endif

int style(int H, int W, int R[500][500], int G[500][500], int B[500][500]);

#ifdef __cplusplus
}
#endif

#endif
#include <stdio.h>
static int DIM[2];
static int R[500][500];
static int G[500][500];
static int B[500][500];

int main() {
    FILE *in = fopen("artclass.txt", "r");
    if(in == NULL) {
        puts("Failed to open input file (artclass.txt).");
        return 0;
    }

    if(fscanf(in, "%d%d", DIM, DIM+1) != 2) {
        printf("Line 1: H, W must be integers\n");
        return 0;
    }
    if(DIM[0] < 100 || 500 < DIM[0]) {
        printf("Line 1: 100 <= H <= 500\n");
        return 0;
    }
    if(DIM[1] < 100 || 500 < DIM[1]) {
        printf("Line 1: 100 <= W <= 500\n");
        return 0;
    }
    for(int i = 0; i< DIM[0]; i++) {
       for(int j = 0; j < DIM[1]; j++) {
           if(fscanf(in, "%d%d%d", &R[i][j], &G[i][j], &B[i][j]) != 3) {
               printf("Line %d: R[i][j], G[i][j], B[i][j] must be integers", i*DIM[1]+j+2, i, j);
               return 0;
           }
           if(R[i][j] < 0 || 255 < R[i][j]) {
               printf("Line %d: 0 <= R[%d][%d] <= 255", i*DIM[1]+j+2, i, j);
               return 0;
           }
           if(G[i][j] < 0 || 255 < G[i][j]) {
               printf("Line %d: 0 <= G[%d][%d] <= 255", i*DIM[1]+j+2, i, j);
               return 0;
           }
           if(B[i][j] < 0 || 255 < B[i][j]) {
               printf("Line %d: 0 <= B[%d][%d] <= 255", i*DIM[1]+j+2, i, j);
               return 0;
           }
       }
    }

    printf("%d\n", style(DIM[0], DIM[1], R, G, B));
    return 0;
}
*/
int style(int H, int W, int R[500][500], int G[500][500], int B[500][500]) {
    ll n = H,m = W;
    ll posa = (n * m) / 4;
    ll polla = 50000;
    ll ans;
  	set<ll>ex;
  	ll prasina = 0;
  	ll aspro = 0;
    f(i,0,n){
        f(j,0,m){
            ex.insert(R[i][j] + 256 * G[i][j] + 256 * 256 * B[i][j]);
          	if(G[i][j] >= max({70,R[i][j],B[i][j]})){
              	prasina++;
            }
            if(min({G[i][j],R[i][j],B[i][j]}) >= 200){
                aspro++;
            }
        }
    }
    if(polla <= (ll)ex.size()){
         if(prasina >= posa){
            ans = 2;
         }
         else{
            ans = 3;
         }
    }
    else{
        if(aspro >= posa / 2){
            ans = 1;
        }
        else{
            ans = 4;
        }
    }
    return ans;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 109 ms 8128 KB Output is correct
2 Correct 55 ms 4568 KB Output is correct
3 Correct 21 ms 3276 KB Output is correct
4 Incorrect 77 ms 3636 KB Output isn't correct
5 Incorrect 61 ms 3916 KB Output isn't correct
6 Incorrect 67 ms 5296 KB Output isn't correct
7 Incorrect 63 ms 5160 KB Output isn't correct
8 Correct 43 ms 3864 KB Output is correct
9 Incorrect 81 ms 5716 KB Output isn't correct
10 Correct 78 ms 3776 KB Output is correct
11 Correct 62 ms 3884 KB Output is correct
12 Correct 57 ms 4044 KB Output is correct
13 Correct 81 ms 7700 KB Output is correct
14 Correct 44 ms 4096 KB Output is correct
15 Correct 36 ms 4364 KB Output is correct
16 Incorrect 45 ms 3724 KB Output isn't correct
17 Correct 58 ms 4300 KB Output is correct
18 Correct 85 ms 7636 KB Output is correct
19 Correct 66 ms 4460 KB Output is correct
20 Incorrect 42 ms 3576 KB Output isn't correct
21 Incorrect 84 ms 4544 KB Output isn't correct
22 Correct 56 ms 4908 KB Output is correct
23 Incorrect 71 ms 4864 KB Output isn't correct
24 Incorrect 68 ms 5580 KB Output isn't correct
25 Correct 74 ms 6488 KB Output is correct
26 Correct 91 ms 7628 KB Output is correct
27 Incorrect 65 ms 3660 KB Output isn't correct
28 Incorrect 80 ms 7120 KB Output isn't correct
29 Correct 92 ms 6700 KB Output is correct
30 Correct 68 ms 3824 KB Output is correct
31 Correct 55 ms 4564 KB Output is correct
32 Correct 41 ms 2580 KB Output is correct
33 Correct 91 ms 7804 KB Output is correct
34 Correct 63 ms 4904 KB Output is correct
35 Correct 40 ms 4172 KB Output is correct
36 Incorrect 59 ms 3564 KB Output isn't correct
37 Incorrect 77 ms 7476 KB Output isn't correct
38 Incorrect 70 ms 5244 KB Output isn't correct
39 Correct 105 ms 6360 KB Output is correct
40 Correct 84 ms 7892 KB Output is correct
41 Incorrect 61 ms 4744 KB Output isn't correct
42 Incorrect 62 ms 3300 KB Output isn't correct
43 Incorrect 63 ms 4768 KB Output isn't correct
44 Correct 72 ms 4432 KB Output is correct
45 Correct 69 ms 6768 KB Output is correct
46 Correct 88 ms 5644 KB Output is correct
47 Correct 58 ms 3912 KB Output is correct
48 Correct 60 ms 3932 KB Output is correct
49 Correct 59 ms 4428 KB Output is correct
50 Correct 83 ms 7288 KB Output is correct
51 Correct 86 ms 7372 KB Output is correct
52 Correct 70 ms 5424 KB Output is correct
53 Correct 51 ms 3380 KB Output is correct
54 Correct 55 ms 3316 KB Output is correct
55 Correct 68 ms 4536 KB Output is correct
56 Incorrect 82 ms 6784 KB Output isn't correct
57 Incorrect 69 ms 4764 KB Output isn't correct
58 Correct 84 ms 7848 KB Output is correct
59 Incorrect 80 ms 6116 KB Output isn't correct
60 Correct 52 ms 3660 KB Output is correct
61 Incorrect 18 ms 1924 KB Output isn't correct
62 Incorrect 90 ms 6308 KB Output isn't correct
63 Correct 57 ms 3908 KB Output is correct
64 Incorrect 56 ms 4168 KB Output isn't correct
65 Incorrect 104 ms 7152 KB Output isn't correct
66 Correct 49 ms 4256 KB Output is correct
67 Correct 82 ms 6336 KB Output is correct
68 Correct 78 ms 6512 KB Output is correct
69 Incorrect 69 ms 5608 KB Output isn't correct
70 Incorrect 59 ms 4352 KB Output isn't correct
71 Correct 79 ms 6340 KB Output is correct
72 Incorrect 52 ms 3788 KB Output isn't correct
73 Correct 66 ms 3856 KB Output is correct
74 Correct 62 ms 5368 KB Output is correct
75 Correct 49 ms 4004 KB Output is correct
76 Incorrect 77 ms 4140 KB Output isn't correct
77 Correct 79 ms 7112 KB Output is correct
78 Correct 88 ms 6548 KB Output is correct
79 Correct 76 ms 4836 KB Output is correct
80 Correct 71 ms 4612 KB Output is correct
81 Correct 59 ms 6624 KB Output is correct
82 Correct 50 ms 4768 KB Output is correct
83 Correct 50 ms 2764 KB Output is correct
84 Correct 68 ms 4236 KB Output is correct
85 Correct 61 ms 3888 KB Output is correct
86 Incorrect 81 ms 6796 KB Output isn't correct
87 Correct 79 ms 6536 KB Output is correct
88 Correct 67 ms 3920 KB Output is correct
89 Incorrect 86 ms 5192 KB Output isn't correct
90 Correct 62 ms 6120 KB Output is correct
91 Correct 50 ms 4872 KB Output is correct
92 Correct 45 ms 4820 KB Output is correct
93 Incorrect 79 ms 6348 KB Output isn't correct
94 Incorrect 64 ms 5092 KB Output isn't correct
95 Correct 38 ms 3788 KB Output is correct
96 Correct 66 ms 5056 KB Output is correct
97 Correct 93 ms 6588 KB Output is correct
98 Incorrect 48 ms 4044 KB Output isn't correct
99 Correct 74 ms 6352 KB Output is correct
100 Correct 66 ms 5080 KB Output is correct
101 Correct 49 ms 4848 KB Output is correct
102 Correct 101 ms 9004 KB Output is correct