Submission #261502

#TimeUsernameProblemLanguageResultExecution timeMemory
261502ElyesChaabouniScales (IOI15_scales)C++14
0 / 100
1 ms384 KiB
/*#pragma GCC optimize("O3")*/ #include<bits/stdc++.h> #include"scales.h" //#include <ext/pb_ds/assoc_container.hpp> //#include <ext/pb_ds/tree_policy.hpp> //#define ordered_set tree<int, null_type,less<int >, rb_tree_tag,tree_order_statistics_node_update> #define eps 1e-9 #define MOD1 998244353 #define MOD2 1000000007 #define INV_10 299473306 #define INF 1000000001 #define PI 3.14159265358979323846 using namespace std; void init(int T) { return; } /*int getLightest(int a, int b, int c) { cout << "Lightest " << a << ' ' << b << ' ' << c << '\n'; int x; cin >> x; return x; } int getHeaviest(int a, int b, int c) { cout << "Heaviest " << a << ' ' << b << ' ' << c << '\n'; int x; cin >> x; return x; } int getMedian(int a, int b, int c) { cout << "Median " << a << ' ' << b << ' ' << c << '\n'; int x; cin >> x; return x; } int getNextLightest(int a, int b, int c, int d) { cout << "NextLightest " << a << ' ' << b << ' ' << c << ' ' <<d << '\n'; int x; cin >> x; return x; } int answer(int a[]) { cout << "Found\n"; for(int i = 0; i < 6; i++) cout << a[i] << ' '; }*/ vector<int> my_super_sort_function_that_never_fails(vector<int>v, int l, int r) { vector<int>ans; if(v.size()<=1) return v; if(v.size()==2) { if(l!=-1) { int x=getHeaviest(l, v[0], v[1]); if(x==v[0]) swap(v[0], v[1]); return v; } else { int x=getLightest(v[0], v[1], r); if(x==v[1]) swap(v[0], v[1]); return v; } } if(v.size()==3) { set<int>s; s.insert(v[0]); s.insert(v[1]); s.insert(v[2]); ans.push_back(getLightest(v[0], v[1], v[2])); s.erase(ans.back()); ans.push_back(getMedian(v[0], v[1], v[2])); s.erase(ans.back()); ans.push_back(*s.begin()); return ans; } } void orderCoins() { int a[3]; set<int>s; s.insert(1); s.insert(2); s.insert(3); a[0]=getLightest(1, 2, 3); a[1]=getMedian(1, 2, 3); s.erase(a[0]); s.erase(a[1]); a[2]=(*s.begin()); vector<int>v1, v2, v3; for(int i = 4; i <= 6; i++) { int x=getMedian(a[0], a[1], i); if(x==a[0]) v1.push_back(i); if(x==i) v2.push_back(i); if(x==a[1]) v3.push_back(i); } vector<int>vv1, vv2, vv3; vv1=my_super_sort_function_that_never_fails(v1, -1, a[0]); vv2=my_super_sort_function_that_never_fails(v2, a[0], a[1]); vv3=my_super_sort_function_that_never_fails(v3, a[1], -1); vector<int>ans; for(int i = 0; i < vv1.size(); i++) ans.push_back(vv1[i]); ans.push_back(a[0]); for(int i = 0; i < vv2.size(); i++) ans.push_back(vv2[i]); ans.push_back(a[1]); for(int i = 0; i < vv3.size(); i++) ans.push_back(vv3[i]); int pos=getNextLightest(4, 5, 6, a[2]); bool found=false; for(int i = 0; i < vv3.size(); i++) if(vv3[i]==pos) found=true; if(!found) { ans.push_back(a[2]); } else { for(int j = 0; j < 5; j++) { if(ans[j]==pos) { ans.insert(ans.begin()+j, a[2]); break; } } } int ans1[6]; for(int i = 0; i < 6; i++) ans1[i]=ans[i]; answer(ans1); } /*int main() { orderCoins(); }*/ //size

Compilation message (stderr)

scales.cpp: In function 'void init(int)':
scales.cpp:14:15: warning: unused parameter 'T' [-Wunused-parameter]
 void init(int T) {
               ^
scales.cpp: In function 'void orderCoins()':
scales.cpp:114:19: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for(int i = 0; i < vv1.size(); i++)
                 ~~^~~~~~~~~~~~
scales.cpp:117:19: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for(int i = 0; i < vv2.size(); i++)
                 ~~^~~~~~~~~~~~
scales.cpp:120:19: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for(int i = 0; i < vv3.size(); i++)
                 ~~^~~~~~~~~~~~
scales.cpp:124:19: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for(int i = 0; i < vv3.size(); i++)
                 ~~^~~~~~~~~~~~
scales.cpp: In function 'std::vector<int> my_super_sort_function_that_never_fails(std::vector<int>, int, int)':
scales.cpp:86:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^
#Verdict Execution timeMemoryGrader output
Fetching results...