Submission #1243970

#TimeUsernameProblemLanguageResultExecution timeMemory
1243970meisgoodArt Class (IOI13_artclass)C++20
89 / 100
32 ms3328 KiB
#include "artclass.h"
#include <bits/stdc++.h>
using namespace std ;
int rbdif ;
int rgdif ;
int bgdif ;
int ttdif ;
int rv ;
int gv ;
int bv ;
int ttd ;
vector <int> prop[4]={
    {42,23,-19,189,166,146,17,389},
    {38,4,-34,102,97+50,63,31,404},
    {37,12,-25,151,138,113,89,709},
    {102,68,-34,157,89,54,5,981}
} ;
void calc(){
    rbdif/=9 ;
    rgdif/=9 ;
    bgdif/=9 ;
    ttdif/9 ;
    rv/=9 ;
    gv/=9 ;
    bv/=9 ;
    ttd/=9 ;
    // cout << rbdif << " " << rgdif << " " << bgdif << " " << rv << " " << gv << " " << bv << " " << " " << ttd << " " << ttdif << endl ;
}
#define runnnn
vector <int> divv={1,1,0,10,5,5,1,50} ;
int style(int H, int W, int R[500][500], int G[500][500], int B[500][500]) {
    int tt=0 ;
    int ttc=0 ;
    int i,j ;
    int rr=0,gg=0,bb=0 ;
    for (i = 0 ; i < H ; i ++){
        for (j = 0 ; j < W ; j ++){
            rr+=R[i][j] ;
            gg+=G[i][j] ;
            bb+=B[i][j] ;
            if (i!=H-1) ttc++,tt+=abs(R[i][j]-R[i+1][j])+abs(G[i][j]-G[i+1][j])+abs(B[i][j]-B[i+1][j]) ;
            if (j!=W-1) ttc++,tt+=abs(R[i][j]-R[i][j+1])+abs(G[i][j]-G[i][j+1])+abs(B[i][j]-B[i][j+1]) ;
        }
    }
    tt/=ttc ;
    rr/=(H*W) ;
    gg/=(H*W) ;
    bb/=(H*W) ;
    // cout << rr << " " << gg << " " << bb << " " << tt << endl ;
    int arr[5]={0,0,0,0,0} ;
    rbdif+=rr-bb ;
    rgdif+=rr-gg ;
    bgdif+=bb-gg ;
    ttdif+=max(abs(rr-gg),max(abs(rr-bb),abs(bb-gg))) ;
    rv+=rr,gv+=gg,bv+=bb ;
    ttd+=tt ;
    vector <int> prop0 ;
    // calc() ;
    prop0={rbdif,rgdif,bgdif,rv,gv,bv,ttd,ttdif} ;
    vector <int> sim(4,0) ;
    int mn=INT_MAX ;
    // sim[1]-=20 ;
    // sim[2]+=30 ;
    // sim[3]+=30 ;
    for (i = 0 ; i < 4 ; i ++){
        for (j = 0 ; j < prop0.size() ; j ++){
            if (divv[j]<=0) sim[i]+=abs(prop0[j]*divv[j]-prop[i][j]*divv[j]) ;
            else sim[i]+=abs(prop0[j]/divv[j]-prop[i][j]/divv[j]) ;
        }
        mn=min(mn,sim[i]) ;
        // cout << sim[i] << " " ;
    }
    for (i = 0 ; i < 4 ; i ++){
        if (mn==sim[i]) return i+1 ;
    }
    return 0;
}

void solve(){
    int n,m,i,j ;
    int R[500][500] ;
    int G[500][500] ;
    int B[500][500] ;
    cin >> n >> m ;
    for (i = 0 ; i < n ; i ++){
        for (j = 0 ; j < m ; j ++){
            cin >> R[i][j] >> G[i][j] >> B[i][j] ;
        }
    }
    // style(n,m,R,G,B) ;
    cout << style(n,m,R,G,B) << endl ;
}
void reset(){
    rbdif=0 ;
    rgdif=0 ;
    bgdif=0 ;
    ttdif=0 ;
    rv=0 ;
    gv=0 ;
    bv=0 ;
    ttd=0 ;
}
/*
#ifdef runnnn
int main(){
    reset() ;
    solve() ;
    return 0 ;
}
#else
int main(){
    reset() ;
    freopen("images/style-1/style-1-1.txt","r",stdin) ; solve() ;
    freopen("images/style-1/style-1-2.txt","r",stdin) ; solve() ;
    freopen("images/style-1/style-1-3.txt","r",stdin) ; solve() ;
    freopen("images/style-1/style-1-4.txt","r",stdin) ; solve() ;
    freopen("images/style-1/style-1-5.txt","r",stdin) ; solve() ;
    freopen("images/style-1/style-1-6.txt","r",stdin) ; solve() ;
    freopen("images/style-1/style-1-7.txt","r",stdin) ; solve() ;
    freopen("images/style-1/style-1-8.txt","r",stdin) ; solve() ;
    freopen("images/style-1/style-1-9.txt","r",stdin) ; solve() ;
    calc() ;
    cout << "A\n" ;
    reset() ;
    freopen("images/style-2/style-2-1.txt","r",stdin) ; solve() ;
    freopen("images/style-2/style-2-2.txt","r",stdin) ; solve() ;
    freopen("images/style-2/style-2-3.txt","r",stdin) ; solve() ;
    freopen("images/style-2/style-2-4.txt","r",stdin) ; solve() ;
    freopen("images/style-2/style-2-5.txt","r",stdin) ; solve() ;
    freopen("images/style-2/style-2-6.txt","r",stdin) ; solve() ;
    freopen("images/style-2/style-2-7.txt","r",stdin) ; solve() ;
    freopen("images/style-2/style-2-8.txt","r",stdin) ; solve() ;
    freopen("images/style-2/style-2-9.txt","r",stdin) ; solve() ;
    calc() ;
    cout << "A\n" ;
    freopen("images/style-3/style-3-1.txt","r",stdin) ; solve() ;
    freopen("images/style-3/style-3-2.txt","r",stdin) ; solve() ;
    freopen("images/style-3/style-3-3.txt","r",stdin) ; solve() ;
    freopen("images/style-3/style-3-4.txt","r",stdin) ; solve() ;
    freopen("images/style-3/style-3-5.txt","r",stdin) ; solve() ;
    freopen("images/style-3/style-3-6.txt","r",stdin) ; solve() ;
    freopen("images/style-3/style-3-7.txt","r",stdin) ; solve() ;
    freopen("images/style-3/style-3-8.txt","r",stdin) ; solve() ;
    freopen("images/style-3/style-3-9.txt","r",stdin) ; solve() ;
    calc() ;
    cout << "A\n" ;
    reset() ;
    freopen("images/style-4/style-4-1.txt","r",stdin) ; solve() ;
    freopen("images/style-4/style-4-2.txt","r",stdin) ; solve() ;
    freopen("images/style-4/style-4-3.txt","r",stdin) ; solve() ;
    freopen("images/style-4/style-4-4.txt","r",stdin) ; solve() ;
    freopen("images/style-4/style-4-5.txt","r",stdin) ; solve() ;
    freopen("images/style-4/style-4-6.txt","r",stdin) ; solve() ;
    freopen("images/style-4/style-4-7.txt","r",stdin) ; solve() ;
    freopen("images/style-4/style-4-8.txt","r",stdin) ; solve() ;
    freopen("images/style-4/style-4-9.txt","r",stdin) ; solve() ;
    calc() ;
    cout << "A\n" ;
    return 0 ;
}
#endif
*/
#Verdict Execution timeMemoryGrader output
Fetching results...