# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
668622 | alvingogo | 저울 (IOI15_scales) | C++14 | 1 ms | 212 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#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==b){
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) 메시지
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |