제출 #604322

#제출 시각아이디문제언어결과실행 시간메모리
604322cheissmart저울 (IOI15_scales)C++14
55.56 / 100
1 ms212 KiB
#include "scales.h" #include <bits/stdc++.h> #define F first #define S second #define V vector #define PB push_back #define EB emplace_back #define MP make_pair #define SZ(v) int((v).size()) #define ALL(v) (v).begin(), (v).end() using namespace std; typedef long long ll; typedef pair<int, int> pi; typedef V<int> vi; const int INF = 1e9 + 7; void init(int T) { } void orderCoins() { vi ans(6); iota(ALL(ans), 1); auto go = [&] (int x, int y, int z) { int a = ans[x], b = ans[y], c = ans[z]; int mx = getHeaviest(a, b, c); int mn = getLightest(a, b, c); int md = a ^ b ^ c ^ mx ^ mn; ans[x] = mn, ans[y] = md, ans[z] = mx; }; // auto ins = [&] (int l, int r, int x) { // int ql = -1, qr = -1; // if((ql = getMedian(ans[l], ans[l + 1], ans[x])) == ans[l]) { // int val = ans[x]; // ans.erase(ans.begin() + x); // ans.insert(ans.begin() + l, val); // return; // } // if((qr = getMedian(ans[r - 1], ans[r], ans[x])) == ans[r]) { // int val = ans[x]; // ans.erase(ans.begin() + x); // ans.insert(ans.begin() + r + 1, val); // return; // } // for(int i = l; i + 1 <= r; i++) { // int qi = -1; // if(i == l) qi = ql; // else if(i + 1 == r) qi = qr; // else qi = getMedian(ans[i], ans[i + 1], ans[x]); // if(qi == ans[x]) { // int val = ans[x]; // ans.erase(ans.begin() + x); // ans.insert(ans.begin() + i + 1, val); // return; // } // } // throw; // }; auto ins = [&] (int l, int r, int x) { int qq = getNextLightest(ans[l], ans[l + 1], ans[l + 2], ans[x]); int val = ans[x]; ans.erase(ans.begin() + x); if(qq == ans[l]) ans.insert(ans.begin() + r + 1, val); else if(qq == ans[l + 2]) ans.insert(ans.begin() + l + 2, val); else ans.insert(ans.begin() + l + 1, val); }; go(0, 1, 2); go(3, 4, 5); if(getLightest(ans[0], ans[3], ans[1]) == ans[3]) { swap(ans[0], ans[3]); swap(ans[1], ans[4]); swap(ans[2], ans[5]); } ins(0, 2, 3); ins(1, 3, 4); ins(2, 4, 5); int W[] = {ans[0], ans[1], ans[2], ans[3], ans[4], ans[5]}; answer(W); }

컴파일 시 표준 에러 (stderr) 메시지

scales.cpp: In function 'void init(int)':
scales.cpp:20:15: warning: unused parameter 'T' [-Wunused-parameter]
   20 | void init(int T) {
      |           ~~~~^
#Verdict Execution timeMemoryGrader output
Fetching results...