제출 #668621

#제출 시각아이디문제언어결과실행 시간메모리
668621alvingogo저울 (IOI15_scales)C++14
0 / 100
1 ms340 KiB
#include <bits/stdc++.h>
#include "scales.h"
#pragma GCC optimize("Ofast")
#define AquA cin.tie(0);ios_base::sync_with_stdio(0);
#define fs first
#define sc second
#define p_q priority_queue
using namespace std;

void init(int T){

}
int fg(int a,int b,int c){
    return getHeaviest(a,b,c);
}
int fm(int a,int b,int c){
    return getMedian(a,b,c);
}
int fl(int a,int b,int c){
    return getLightest(a,b,c);
}
int nx(int a,int b,int c,int d){
    return getNextLightest(a,b,c,d);
}
vector<int> st(int a,int b,int c,int d){
    vector<int> g(4);
    g[0]=a;
    g[1]=b;
    g[2]=c;
    g[3]=d;
    return g;
}
vector<int> sort4(int d,int e,int f,int a){
    int x=fm(d,e,f);
    if(x!=d){
        if(x==e){
            swap(d,e);
        }
        else{
            swap(d,f);
        }
    }
    int y=fl(a,d,e);
    if(y==e){
        int z=nx(e,d,f,a);
        if(z==e){
            return st(e,d,f,a);
        }
        else if(z==f){
            return st(e,d,a,f);
        }
        else{
            return st(e,a,d,f);
        }
    }
    else if(y==d){
        int z=fg(d,e,a);
        if(z==e){
            return st(f,d,a,e);
        }
        else{
            return st(f,d,e,a);
        }
    }
    else{
        int z=fm(a,f,d);
        if(z==a){
            return st(f,a,d,e);
        }
        else if(z==f){
            return st(a,f,d,e);
        }
        else{
            return st(a,e,d,f);
        }
    }
}
void orderCoins(){
    int a=fm(1,2,3);
    auto h=sort4(a,4,5,6);
    int b=fl(1,2,3);
    int c=6-a-b;
    int ans[6]={0};
    for(int i=0;i<4;i++){
        if(h[i]==a){
            if(i==0){
                ans[0]=b;
                ans[1]=a;
                int u=nx(h[1],h[2],h[3],c);
                if(u==h[2]){
                    ans[2]=h[1];
                    ans[3]=c;
                    ans[4]=h[2];
                    ans[5]=h[3];
                }
                else if(u==h[3]){
                    ans[2]=h[1];
                    ans[3]=h[2];
                    ans[4]=c;
                    ans[5]=h[3];
                }
                else{
                    int x=fg(h[2],h[3],c);
                    if(x==c){
                        ans[2]=h[1];
                        ans[3]=h[2];
                        ans[4]=h[3];
                        ans[5]=c;
                    }
                    else{
                        ans[2]=c;
                        ans[3]=h[1];
                        ans[4]=h[2];
                        ans[5]=h[3];
                    }
                }
            }
            if(i==3){
                ans[5]=c;
                ans[4]=a;
                int u=nx(h[0],h[1],h[2],b);
                if(u==h[2]){
                    ans[3]=h[2];
                    ans[2]=b;
                    ans[1]=h[1];
                    ans[0]=h[0];
                }
                else if(u==h[1]){
                    ans[3]=h[2];
                    ans[2]=h[1];
                    ans[1]=b;
                    ans[0]=h[0];
                }
                else{
                    int x=fl(h[0],h[1],b);
                    if(x==a){
                        ans[3]=h[2];
                        ans[2]=h[1];
                        ans[1]=h[0];
                        ans[0]=c;
                    }
                    else{
                        ans[3]=c;
                        ans[2]=h[2];
                        ans[1]=h[1];
                        ans[0]=h[0];
                    }
                }
            }
            if(i==1){
                ans[2]=a;
                int x=fl(b,h[0],h[1]);
                if(x==b){
                    ans[0]=b;
                    ans[1]=h[0];
                }
                else{
                    ans[0]=h[0];
                    ans[1]=b;
                }
                int y=nx(h[1],h[2],h[3],c);
                if(y==h[3]){
                    ans[3]=h[2];
                    ans[4]=c;
                    ans[5]=h[3];
                }
                else if(y==h[2]){
                    ans[3]=c;
                    ans[4]=h[2];
                    ans[5]=h[3];
                }
                else{
                    ans[3]=h[2];
                    ans[4]=h[3];
                    ans[5]=c;
                }
            }  
            if(i==2){
                ans[3]=a;
                int x=fg(c,h[2],h[3]);
                if(x==c){
                    ans[5]=c;
                    ans[4]=h[3];
                }
                else{
                    ans[5]=h[3];
                    ans[4]=c;
                }
                int y=nx(h[0],h[1],h[2],b);
                if(y==h[2]){
                    ans[2]=b;
                    ans[1]=h[1];
                    ans[0]=h[0];
                }
                else if(y==h[1]){
                    ans[2]=h[1];
                    ans[1]=b;
                    ans[0]=h[0];
                }
                else{
                    ans[2]=h[1];
                    ans[1]=h[0];
                    ans[0]=b;
                }
            } 
        }
    }
    answer(ans);
}

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

scales.cpp: In function 'void init(int)':
scales.cpp:10:15: warning: unused parameter 'T' [-Wunused-parameter]
   10 | void init(int T){
      |           ~~~~^
#Verdict Execution timeMemoryGrader output
Fetching results...