제출 #689799

#제출 시각아이디문제언어결과실행 시간메모리
689799mychecksedad저울 (IOI15_scales)C++17
0 / 100
1 ms212 KiB
#include <bits/stdc++.h> #include <scales.h> using namespace std; void init(int T){ } void answer(int W[]); int getMedian(int A, int B, int C); int getHeaviest(int A, int B, int C); int getLightest(int A, int B, int C); int getNextLightest(int A, int B, int C, int D); void verase(int x, vector<int> &v){ for(int i = 0; i < v.size(); ++i){ if(v[i] == x){ v.erase(v.begin() + i); return; } } } void orderCoins() { int W[6]; vector<int> a(3), b(3); a[0] = getLightest(1, 2, 3); a[2] = getHeaviest(1, 2, 3); a[1] = (a[0] != 1 && a[2] != 1 ? 1 : (a[0] != 2 && a[2] != 2 ? 2 : 3)); b[0] = getLightest(4, 5, 6); b[2] = getHeaviest(4, 5, 6); b[1] = (b[0] != 4 && b[2] != 4 ? 4 : (b[0] != 6 && b[2] != 6 ? 6 : 5)); int med = getMedian(a[2], b[2], a[1]); if(med == a[1]){ W[5] = a[2]; W[4] = a[1]; verase(a[2], a); verase(a[1], a); }else if(med == a[2]){ W[5] = b[2]; W[4] = a[2]; verase(a[2], a); verase(b[2], b); }else{ W[5] = a[2]; W[4] = b[2]; verase(a[2], a); verase(b[2], b); } if(a.size() == b.size()){ int med = getMedian(a[1], b[1], a[0]); if(med == a[0]){ W[3] = a[1]; W[2] = a[0]; verase(a[1], a); verase(a[0], a); }else if(med == a[1]){ W[3] = b[1]; W[2] = a[1]; verase(a[1], a); verase(b[1], b); }else{ W[3] = a[1]; W[2] = b[1]; verase(a[1], a); verase(b[1], b); } if(a.size() == b.size()){ int mn = getLightest(a[0], b[0], W[2]); W[0] = mn; W[1] = (mn == a[0] ? b[0] : a[0]); }else{ if(a.empty()) W[0] = b[0], W[1] = b[1]; else W[0] = a[0], W[1] = a[1]; } }else{ // means that a.size == 1 int pos = getNextLightest(b[0], b[1], b[2], a[0]); if(pos == b[0]){ int mn = getLightest(a[0], b[0], W[5]); if(mn == a[0]){ W[0] = a[0]; W[1] = b[0]; W[2] = b[1]; W[3] = b[2]; }else{ W[0] = b[0]; W[1] = b[1]; W[2] = b[2]; W[3] = a[0]; } }else{ W[0] = b[0]; int x = 1; for(int i = 1; i < 3; ++i, x++){ if(pos == b[i]){ W[x] = a[0]; W[x + 1] = b[i]; x++; }else W[x] = b[i]; } } } answer(W); }

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

scales.cpp: In function 'void init(int)':
scales.cpp:5:15: warning: unused parameter 'T' [-Wunused-parameter]
    5 | void init(int T){
      |           ~~~~^
scales.cpp: In function 'void verase(int, std::vector<int>&)':
scales.cpp:17:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   17 |  for(int i = 0; i < v.size(); ++i){
      |                 ~~^~~~~~~~~~
scales.cpp: In function 'void orderCoins()':
scales.cpp:58:10: warning: declaration of 'med' shadows a previous local [-Wshadow]
   58 |      int med = getMedian(a[1], b[1], a[0]);
      |          ^~~
scales.cpp:38:9: note: shadowed declaration is here
   38 |     int med = getMedian(a[2], b[2], a[1]);
      |         ^~~
#Verdict Execution timeMemoryGrader output
Fetching results...