Submission #940368

# Submission time Handle Problem Language Result Execution time Memory
940368 2024-03-07T08:40:59 Z shenfe1 Art Class (IOI13_artclass) C++17
0 / 100
58 ms 12228 KB
#include <bits/stdc++.h>

#pragma optimize("Ofast")
#pragma target("avx2")

using namespace std;

#define ll long long
#define ld long double
#define pb push_back
#define pf push_front
#define pii pair<int,int>
#define all(v) v.begin(),v.end()
#define F first
#define S second
#define mem(a,i) memset(a,i,sizeof(a))
#define sz(s) (int)s.size()
#define y1 yy
#define ppb pop_back
#define lb lower_bound
#define ub upper_bound
#define gcd(a,b) __gcd(a,b)
#define in insert
// #define int ll

const int MAX=500+15;
const ll inf=1e9;  
const int mod=1e9+7;
const int mod1=1e9+9;
const ld eps=1e-9;

int dx[8]={1,0,-1,0,1,-1,-1,1};
int dy[8]={0,1,0,-1,1,-1,1,-1};

int binpow(int a,int n){
  if(!n)return 1;
  if(n%2==1)return a*binpow(a,n-1);
  int k=binpow(a,n/2);
  return k*k;
}

#include "artclass.h"

int r[MAX][MAX],g[MAX][MAX],b[MAX][MAX];
int isBorder[MAX][MAX];
int h,w;
vector<pii> vec;
int use[MAX][MAX];

bool good(int i,int j){
  return (0<=i&&i<h&&0<=j&&j<w);
}

int style(int H, int W, int R[500][500], int G[500][500], int B[500][500]) {
  h=H;
  w=W;
  int C1=20;
  for(int i=0;i<h;i++)for(int j=0;j<w;j++){
    r[i][j]=R[i][j];
    g[i][j]=G[i][j];
    b[i][j]=B[i][j];
  }
  {
    int ok=5;
    int cnt=0;
    for(int i=0;i<h;i++){
      for(int j=0;j<w;j++){
        if(abs(max({R[i][j],G[i][j],B[i][j]})-min({R[i][j],G[i][j],B[i][j]}))<=C1&&max({R[i][j],G[i][j],B[i][j]})<=128){
          isBorder[i][j]=1;
          cnt++;
        }
      }
    }
    if(cnt<h*w*1.0/15)ok=0;
    // cout<<cnt<<"\n";
    for(int i=0;i<h;i++){
      for(int j=0;j<w;j++){
        if(!isBorder[i][j]&&!use[i][j]){
          vec.clear();
          queue<pii> q;
          q.push({i,j});
          use[i][j]=1;
          while(!q.empty()){
            int x=q.front().F,y=q.front().S;
            vec.pb({x,y});
            q.pop();
            use[x][y]=1;
            for(int k=0;k<8;k++){
              int nx=x+dx[k];
              int ny=y+dy[k];
              if(good(nx,ny)&&!isBorder[nx][ny]&&!use[nx][ny]){
                use[nx][ny]=1;
                q.push({nx,ny});
              }
            }
          }
          // return -1;
          ld mr=0,mb=0,mg=0;          
          for(auto x:vec){
            mr+=R[x.F][x.S];
            mb+=B[x.F][x.S];
            mg+=G[x.F][x.S];
          }
          if(vec.empty())continue;
          mr/=sz(vec);
          mb/=sz(vec);
          mg/=sz(vec);
          int cnt=0;
          for(auto x:vec){
            if(abs(R[x.F][x.S]-mr)<=2*C1&&abs(G[x.F][x.S]-mg)<=2*C1&&abs(B[x.F][x.S]-mb)<=2*C1)cnt++;
          }
          if(cnt<sz(vec)*9.0/10){
            ok--;
            // cout<<sz(vec)<<"\n";
          }
        }
      }
    }
    if(ok>0)return 1;
  }
  bool is4=1;
  int C=50;
  for(int i=0;i<H;i++){
    int cnt=0;
    ld mr=0,mb=0,mg=0;
    for(int j=0;j<W;j++){
      mr+=R[i][j];
      mb+=B[i][j];
      mg+=G[i][j];
    }
    mr/=W;
    mb/=W;
    mg/=W;
    for(int j=0;j<W;j++){
      if(abs(R[i][j]-mr)<=C&&abs(G[i][j]-mg)<=C&&abs(B[i][j]-mb)<=C)cnt++;
    }
    if(cnt<W*9.0/10){
      is4=0;
    }
  }
  if(is4==1)return 4;
  return -1;
}

Compilation message

artclass.cpp:3: warning: ignoring '#pragma optimize ' [-Wunknown-pragmas]
    3 | #pragma optimize("Ofast")
      | 
artclass.cpp:4: warning: ignoring '#pragma target ' [-Wunknown-pragmas]
    4 | #pragma target("avx2")
      |
# Verdict Execution time Memory Grader output
1 Incorrect 40 ms 10952 KB Output isn't correct
2 Incorrect 29 ms 9608 KB Output isn't correct
3 Incorrect 53 ms 11980 KB Output isn't correct
4 Incorrect 47 ms 11464 KB Output isn't correct
5 Correct 36 ms 11728 KB Output is correct
6 Incorrect 40 ms 9752 KB Output isn't correct
7 Correct 50 ms 10192 KB Output is correct
8 Incorrect 41 ms 11204 KB Output isn't correct
9 Incorrect 34 ms 9672 KB Output isn't correct
10 Incorrect 24 ms 8648 KB Output isn't correct
11 Incorrect 26 ms 9172 KB Output isn't correct
12 Incorrect 30 ms 9684 KB Output isn't correct
13 Incorrect 43 ms 10700 KB Output isn't correct
14 Correct 44 ms 11972 KB Output is correct
15 Incorrect 41 ms 11716 KB Output isn't correct
16 Correct 47 ms 11980 KB Output is correct
17 Correct 35 ms 11468 KB Output is correct
18 Correct 46 ms 11720 KB Output is correct
19 Incorrect 46 ms 11460 KB Output isn't correct
20 Incorrect 44 ms 11748 KB Output isn't correct
21 Incorrect 47 ms 11716 KB Output isn't correct
22 Incorrect 54 ms 11716 KB Output isn't correct
23 Correct 33 ms 10164 KB Output is correct
24 Incorrect 36 ms 11716 KB Output isn't correct
25 Incorrect 39 ms 11724 KB Output isn't correct
26 Incorrect 42 ms 10188 KB Output isn't correct
27 Incorrect 47 ms 11480 KB Output isn't correct
28 Incorrect 43 ms 10192 KB Output isn't correct
29 Correct 52 ms 11976 KB Output is correct
30 Incorrect 54 ms 11980 KB Output isn't correct
31 Correct 32 ms 11472 KB Output is correct
32 Incorrect 50 ms 11980 KB Output isn't correct
33 Incorrect 49 ms 11632 KB Output isn't correct
34 Incorrect 12 ms 8796 KB Output isn't correct
35 Correct 50 ms 10448 KB Output is correct
36 Incorrect 24 ms 8276 KB Output isn't correct
37 Incorrect 44 ms 11720 KB Output isn't correct
38 Incorrect 41 ms 10716 KB Output isn't correct
39 Incorrect 13 ms 7516 KB Output isn't correct
40 Incorrect 42 ms 9304 KB Output isn't correct
41 Incorrect 47 ms 11596 KB Output isn't correct
42 Incorrect 50 ms 11784 KB Output isn't correct
43 Correct 53 ms 11212 KB Output is correct
44 Incorrect 46 ms 11720 KB Output isn't correct
45 Incorrect 34 ms 10976 KB Output isn't correct
46 Incorrect 32 ms 10696 KB Output isn't correct
47 Correct 43 ms 11832 KB Output is correct
48 Incorrect 49 ms 10320 KB Output isn't correct
49 Incorrect 46 ms 11464 KB Output isn't correct
50 Incorrect 41 ms 11716 KB Output isn't correct
51 Correct 29 ms 8796 KB Output is correct
52 Incorrect 44 ms 10324 KB Output isn't correct
53 Incorrect 45 ms 11464 KB Output isn't correct
54 Incorrect 40 ms 10188 KB Output isn't correct
55 Incorrect 45 ms 11972 KB Output isn't correct
56 Correct 58 ms 12228 KB Output is correct
57 Correct 30 ms 10560 KB Output is correct
58 Incorrect 42 ms 10188 KB Output isn't correct
59 Incorrect 52 ms 12200 KB Output isn't correct
60 Incorrect 55 ms 11100 KB Output isn't correct
61 Incorrect 45 ms 11720 KB Output isn't correct
62 Incorrect 42 ms 11204 KB Output isn't correct
63 Incorrect 47 ms 10720 KB Output isn't correct
64 Incorrect 47 ms 11720 KB Output isn't correct
65 Incorrect 43 ms 8788 KB Output isn't correct
66 Incorrect 47 ms 11952 KB Output isn't correct
67 Incorrect 43 ms 11724 KB Output isn't correct
68 Incorrect 42 ms 11204 KB Output isn't correct
69 Incorrect 36 ms 9672 KB Output isn't correct
70 Correct 51 ms 10448 KB Output is correct
71 Incorrect 49 ms 11972 KB Output isn't correct
72 Incorrect 42 ms 11208 KB Output isn't correct
73 Incorrect 47 ms 10784 KB Output isn't correct
74 Incorrect 53 ms 11972 KB Output isn't correct
75 Incorrect 42 ms 11984 KB Output isn't correct
76 Incorrect 44 ms 10444 KB Output isn't correct
77 Incorrect 44 ms 11484 KB Output isn't correct
78 Incorrect 25 ms 10184 KB Output isn't correct
79 Correct 52 ms 10956 KB Output is correct
80 Incorrect 40 ms 11320 KB Output isn't correct
81 Incorrect 55 ms 11972 KB Output isn't correct
82 Incorrect 45 ms 11464 KB Output isn't correct
83 Correct 51 ms 11976 KB Output is correct
84 Incorrect 43 ms 11972 KB Output isn't correct
85 Incorrect 52 ms 10448 KB Output isn't correct
86 Incorrect 50 ms 10696 KB Output isn't correct
87 Incorrect 45 ms 11472 KB Output isn't correct
88 Incorrect 46 ms 10060 KB Output isn't correct
89 Correct 46 ms 11728 KB Output is correct
90 Incorrect 57 ms 11460 KB Output isn't correct
91 Incorrect 40 ms 10564 KB Output isn't correct
92 Correct 52 ms 10444 KB Output is correct
93 Correct 43 ms 11212 KB Output is correct
94 Incorrect 46 ms 11464 KB Output isn't correct
95 Incorrect 37 ms 11652 KB Output isn't correct
96 Incorrect 48 ms 11472 KB Output isn't correct
97 Incorrect 46 ms 11724 KB Output isn't correct
98 Incorrect 38 ms 10680 KB Output isn't correct
99 Incorrect 48 ms 11732 KB Output isn't correct
100 Incorrect 57 ms 11472 KB Output isn't correct
101 Incorrect 31 ms 8656 KB Output isn't correct
102 Correct 42 ms 11732 KB Output is correct