# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
290794 | kshitij_sodani | 저울 (IOI15_scales) | C++14 | 1 ms | 384 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "scales.h"
#include <bits/stdc++.h>
using namespace std;
#define a first
#define b second
#define pb push_back
void init(int T) {
/* ... */
}
void orderCoins() {
/* ... */
vector<int> cur;
int aa=1;
int bb=2;
int cc=3;
cur.pb(getLightest(aa,bb,cc));
cur.pb(getMedian(aa,bb,cc));
for(int i=1;i<=3;i++){
if(i!=cur[0] and i!=cur[1]){
cur.pb(i);
}
}
//int x=getMedian(cur[0],cur[1],4);
/* if(x==cur[0]){
int jj=0;
vector<int> cur2;
for(int j=0;j<jj;j++){
cur2.pb(cur[j]);
}
cur2.pb(4);
for(int j=jj;jj<cur.size();j++){
cur2.pb(cur[j]);
}
cur=cur2;
}
else if(x==cur[1]){
}
else{
int jj=1;
vector<int> cur2;
for(int j=0;j<jj;j++){
cur2.pb(cur[j]);
}
cur2.pb(4);
for(int j=jj;jj<cur.size();j++){
cur2.pb(cur[j]);
}
cur=cur2;
}*/
for(int i=4;i<=6;i++){
vector<pair<int,int>> ss;
if(i==4){
ss.pb({0,1});
ss.pb({1,2});
}
else if(i==5){
ss.pb({0,1});
ss.pb({2,3});
}
else{
ss.pb({0,1});
ss.pb({3,4});
}
int st=0;
for(auto j:ss){
int x=getMedian(cur[j.a],cur[j.b],i);
/*for(auto j:cur){
cout<<j<<":";
}
cout<<endl;*/
if(x==i){
st=1;
int jj=j.a+1;
vector<int> cur2;
for(int ii=0;ii<jj;ii++){
cur2.pb(cur[ii]);
}
cur2.pb(i);
for(int ii=jj;ii<cur.size();ii++){
cur2.pb(cur[ii]);
}
cur=cur2;
break;
}
else if(x==cur[j.a]){
st=1;
int jj=j.a;
vector<int> cur2;
for(int ii=0;ii<jj;ii++){
cur2.pb(cur[ii]);
}
cur2.pb(i);
for(int ii=jj;ii<cur.size();ii++){
cur2.pb(cur[ii]);
}
cur=cur2;
break;
}
}
if(st==0){
cur.pb(i);
}
/* for(int j=0;j<cur.size();j+=3){
}
if(getLightest(i,cur[0],cur[1])==i){
reverse(cur.begin(),cur.end());
cur.pb(i);
reverse(cur.begin(),cur.end());
}
else{
int st=0;
vector<int> cur2;
for(int ii=0;ii<cur.size()-1;ii++){
if(getMedian(i,cur[ii],cur[ii+1])==i){
st=1;
for(int j=0;j<=ii;j++){
cur2.pb(cur[j]);
}
cur2.pb(i);
for(int j=ii+1;j<cur.size();j++){
cur2.pb(cur[j]);
}
//cur=cur2;
//break;
}
}
if(st==0){
cur.pb(i);
}
else{
cur=cur2;
}
}*/
}
int ww[6];
for(int i=0;i<6;i++){
ww[i]=cur[i];
}
answer(ww);
}
컴파일 시 표준 에러 (stderr) 메시지
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |