Submission #261541

# Submission time Handle Problem Language Result Execution time Memory
261541 2020-08-11T20:45:35 Z amiratou Scales (IOI15_scales) C++14
71.4286 / 100
1 ms 384 KB
#include "scales.h"
#include <bits/stdc++.h>
using namespace std;
#define pb push_back

vector<int> g[5]={{5,4,3,2,1},{3,2,1,4,5},{2,3,1,4,5},{3,4,2,5,1},{3,5,2,1,4}};
map<vector<int>,vector<int> > code;
vector<int> vec={1,2,3,4,5};
int pos[5];
int nxt(int a,int b,int c,int d){
	vector<int> GG={a,b,c};
	sort(GG.begin(),GG.end());
	a=GG[0],b=GG[1],c=GG[2];
	if(d>c)return vec[a];
	if(d<a)return vec[a];
	if(d<b)return vec[b];
	if(d<c)return vec[c];
}
int light(int a,int b,int c){
	return vec[min(a,min(b,c))];
}
int mid(int a,int b,int c){
	vector<int> GG={a,b,c};
	sort(GG.begin(),GG.end());
	return vec[GG[1]];
}
int heavy(int a,int b,int c){
	return vec[max(a,max(b,c))];
}

void init(int T) {
    do{
		for (int i = 0; i < 5; ++i)
			pos[vec[i]]=i;
		vector<int> id;
		id.pb(light(pos[g[0][0]],pos[g[0][1]],pos[g[0][2]]));
		id.pb(heavy(pos[g[1][0]],pos[g[1][1]],pos[g[1][2]]));
		id.pb(nxt(pos[g[2][0]],pos[g[2][1]],pos[g[2][2]],pos[g[2][3]]));
		id.pb(nxt(pos[g[3][0]],pos[g[3][1]],pos[g[3][2]],pos[g[3][3]]));
		id.pb(nxt(pos[g[4][0]],pos[g[4][1]],pos[g[4][2]],pos[g[4][3]]));
		code[id]=vec;
	}while(next_permutation(vec.begin(),vec.end()));
}

void orderCoins() {
    vector<int> ans;
    int a,b;
    vector<int> ID;
    ID.pb(getLightest(g[0][0],g[0][1],g[0][2]));
	ID.pb(getHeaviest(g[1][0],g[1][1],g[1][2]));
	ID.pb(getNextLightest(g[2][0],g[2][1],g[2][2],g[2][3]));
	ID.pb(getNextLightest(g[3][0],g[3][1],g[3][2],g[3][3]));
	ID.pb(getNextLightest(g[4][0],g[4][1],g[4][2],g[4][3]));
	ans=code[ID];
    a=getNextLightest(ans[0],ans[2],ans[4],6);
    if(a==ans[2]){
    	b=getMedian(6,ans[1],ans[2]);
    	if(b==6)ans.insert(ans.begin()+2,6);
    	else ans.insert(ans.begin()+1,6);
    }
    else if(a==ans[4]){
    	b=getMedian(6,ans[3],ans[4]);
    	if(b==6)ans.insert(ans.begin()+4,6);
    	else ans.insert(ans.begin()+3,6);
    }
    else{
    	b=getLightest(6,ans[0],ans[1]);
    	if(b==6)ans.insert(ans.begin(),6);
    	else ans.pb(6);
    }
    int W[6];
    for (int i = 0; i < 6; ++i)
    	W[i]=ans[i];
    answer(W);
}

Compilation message

scales.cpp: In function 'void init(int)':
scales.cpp:31:15: warning: unused parameter 'T' [-Wunused-parameter]
 void init(int T) {
               ^
scales.cpp: In function 'int nxt(int, int, int, int)':
scales.cpp:18:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^
# Verdict Execution time Memory Grader output
1 Partially correct 1 ms 384 KB Output is partially correct
2 Partially correct 1 ms 384 KB Output is partially correct
3 Partially correct 1 ms 384 KB Output is partially correct
4 Partially correct 1 ms 384 KB Output is partially correct
5 Partially correct 1 ms 384 KB Output is partially correct
6 Partially correct 1 ms 384 KB Output is partially correct
7 Partially correct 1 ms 384 KB Output is partially correct
8 Partially correct 1 ms 384 KB Output is partially correct
9 Partially correct 1 ms 384 KB Output is partially correct
10 Partially correct 1 ms 384 KB Output is partially correct
11 Partially correct 1 ms 384 KB Output is partially correct
12 Partially correct 1 ms 384 KB Output is partially correct
13 Partially correct 1 ms 384 KB Output is partially correct
14 Partially correct 1 ms 384 KB Output is partially correct
15 Partially correct 1 ms 384 KB Output is partially correct
16 Partially correct 1 ms 384 KB Output is partially correct
17 Partially correct 1 ms 384 KB Output is partially correct
18 Partially correct 1 ms 384 KB Output is partially correct
19 Partially correct 1 ms 384 KB Output is partially correct
20 Partially correct 1 ms 384 KB Output is partially correct
21 Partially correct 1 ms 384 KB Output is partially correct
22 Partially correct 1 ms 384 KB Output is partially correct
23 Partially correct 1 ms 384 KB Output is partially correct
24 Partially correct 1 ms 384 KB Output is partially correct
25 Partially correct 1 ms 384 KB Output is partially correct
26 Partially correct 1 ms 384 KB Output is partially correct
27 Partially correct 1 ms 384 KB Output is partially correct
28 Partially correct 1 ms 304 KB Output is partially correct
29 Partially correct 1 ms 384 KB Output is partially correct
30 Partially correct 1 ms 384 KB Output is partially correct
31 Partially correct 1 ms 384 KB Output is partially correct
32 Partially correct 1 ms 384 KB Output is partially correct
33 Partially correct 1 ms 384 KB Output is partially correct
34 Partially correct 1 ms 384 KB Output is partially correct
35 Partially correct 1 ms 384 KB Output is partially correct
36 Partially correct 1 ms 384 KB Output is partially correct
37 Partially correct 1 ms 384 KB Output is partially correct
38 Partially correct 1 ms 384 KB Output is partially correct
39 Partially correct 1 ms 384 KB Output is partially correct
40 Partially correct 1 ms 384 KB Output is partially correct