제출 #727411

#제출 시각아이디문제언어결과실행 시간메모리
727411Vu_CG_Coder저울 (IOI15_scales)C++14
55.56 / 100
1 ms212 KiB
/* [Author : Hoang Duy Vu] - THPT Chuyen Nguyen Du */ //#pragma GCC optimize(" unroll-loops") //#pragma gcc optimize("Ofast") //#pragma GCC optimization("Ofast") //#pragma optimize(Ofast) #include "scales.h" #include <bits/stdc++.h> #define All(x) (x).begin(),(x).end() #define ll long long #define C make_pair #define fi first #define se second #define two second.first #define thr second.second #define TASK "txt" using namespace std; template<typename T> bool maximize(T &res, const T &val) { if (res < val) { res = val; return true; } return false; } template<typename T> bool minimize(T &res, const T &val) { if (res > val) { res = val; return true; } return false; } typedef pair<int,int> ii; typedef pair<int,ii> iii; const int LOG = 20; const int INF = 1e9 + 7; const ll LNF = 1e18 + 7; const int mod = 1e9 + 7; const int N = 10; int A[N]; int B[N]; int f[N] = {0}; int cnt = 0; int val[N]; // int getLightest(int a , int b , int c) // { // for (int i = 0 ; i < 5 ; i++) // if (val[i] == a || val[i] == b || val[i] == c) return val[i]; // } // int getMedian(int a , int b , int c) // { // int d = 0; // for (int i = 0 ; i < 5 ; i++) // if (val[i] == a || val[i] == b || val[i] == c) // { // d++; // if (d == 2) return val[i]; // } // } void init(int T) { } void orderCoins() { int W[] = {1,2,3,4,5,6}; memset(f,0,sizeof(f)); cnt = 0; A[1] = getLightest(1, 2, 3); A[2] = getMedian(1, 2, 3); f[A[1]]++; f[A[2]]++; B[1] = getLightest(4, 5, 6); B[2] = getMedian(4, 5, 6); f[B[1]]++; f[B[2]]++; for (int i = 1 ; i <= 3 ; i++) if (!f[i]) A[3] = i; for (int i = 4 ; i <= 6 ; i++) if (!f[i]) B[3] = i; int l = 1 , r = 1; int x = getLightest(A[1],B[1],B[2]); if (x == A[1]) { l++; W[cnt++] = A[1]; } else { r++; W[cnt++] = B[1]; } while (cnt < 6) { if (l > 3) { W[cnt++] = B[r]; r++; } else if (r > 3) { W[cnt++] = A[l]; l++; } if (r > 3 || l > 3) continue; if (cnt == 3) { if (l == 2) { int y = getMedian(A[l],A[l + 1],B[r]); if (y == A[2]) { W[3] = B[3]; W[4] = A[2]; W[5] = A[3]; break; } if (y == A[3]) { W[3] = A[2]; W[4] = A[3]; W[5] = B[3]; break; } if (y == B[3]) { W[3] = A[2]; W[4] = B[3]; W[5] = A[3]; break; } } else { int y = getMedian(A[l],B[r + 1],B[r]); if (y == B[2]) { W[3] = A[3]; W[4] = B[2]; W[5] = B[3]; break; } if (y == B[3]) { W[3] = B[2]; W[4] = B[3]; W[5] = A[3]; break; } if (y == A[3]) { W[3] = B[2]; W[4] = A[3]; W[5] = B[3]; break; } } break; } int y = getMedian(W[0],A[l],B[r]); if (y == A[l]) { W[cnt++] = A[l]; l++; } else { W[cnt++] = B[r]; r++; } } // for (int i = 0 ; i < 6 ; i++) cout << W[i] << " "; // cout << "\n"; answer(W); } // int main() // { // ios_base::sync_with_stdio(0); // cin.tie(NULL); cout.tie(NULL); // if(fopen(TASK".inp", "r")){ // freopen(TASK".inp","r",stdin); // freopen(TASK".out","w",stdout); // } // int t; // cin >> t; // while (t--) // { // for (int i = 0 ; i < 6 ; i++) cin >> val[i]; // orderCoins(); // } // return 0; // }

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

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