# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
290801 | kshitij_sodani | Scales (IOI15_scales) | C++14 | 1 ms | 256 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#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);
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |