제출 #50042

#제출 시각아이디문제언어결과실행 시간메모리
50042Benq저울 (IOI15_scales)C++14
컴파일 에러
0 ms0 KiB
#include <bits/stdc++.h> #include <ext/pb_ds/tree_policy.hpp> #include <ext/pb_ds/assoc_container.hpp> using namespace std; using namespace __gnu_pbds; typedef long long ll; typedef long double ld; typedef complex<ld> cd; typedef pair<int, int> pi; typedef pair<ll,ll> pl; typedef pair<ld,ld> pd; typedef vector<int> vi; typedef vector<ld> vd; typedef vector<ll> vl; typedef vector<pi> vpi; typedef vector<pl> vpl; typedef vector<cd> vcd; template <class T> using Tree = tree<T, null_type, less<T>, rb_tree_tag,tree_order_statistics_node_update>; #define FOR(i, a, b) for (int i=a; i<(b); i++) #define F0R(i, a) for (int i=0; i<(a); i++) #define FORd(i,a,b) for (int i = (b)-1; i >= a; i--) #define F0Rd(i,a) for (int i = (a)-1; i >= 0; i--) #define sz(x) (int)(x).size() #define mp make_pair #define pb push_back #define f first #define s second #define lb lower_bound #define ub upper_bound #define all(x) x.begin(), x.end() const int MOD = 1000000007; const ll INF = 1e18; const int MX = 100001; /*int num = 0, val[7]; bool cmp(int a, int b) { return val[a] < val[b]; } int getR(vi a, int b) { sort(all(a),cmp); return a[b]; } int getLightest(int A, int B, int C) { return getR({A,B,C},0); } int getHeaviest(int A, int B, int C) { return getR({A,B,C},2); } int getMedian(int A, int B, int C) { return getR({A,B,C},1); } int getNextLightest(int A, int B, int C, int D) { vi z = {A,B,C}; sort(all(z),cmp); F0R(i,3) if (cmp(D,z[i])) return z[i]; return z[0]; } void answer(vi cur) { for (int i: cur) cout << i << " "; cout << "\n"; }*/ #include "scales.h" void init(int T) {} vi insEnd(vi cur, int x) { int t = getMedian(cur[0],cur[2],x); if (t == cur[0]) cur.insert(cur.begin(),x); else cur.pb(x); return cur; } vi ins(vi cur, int x) { int t = getNextLightest(cur[0],cur[sz(cur)/2],cur[sz(cur)-1],x); if (t == cur[0]) return insEnd(cur,x); if (t == cur[sz(cur)/2]) { if (sz(cur) == 3) { cur.insert(cur.begin()+1,x); } else { if (getHeaviest(cur[0],cur[1],x) == x) cur.insert(cur.begin()+2,x); else cur.insert(cur.begin()+1,x); } } else { if (sz(cur) <= 4) { cur.insert(cur.begin()+sz(cur)/2+1,x); } else { if (getHeaviest(cur[2],cur[3],x) == x) cur.insert(cur.begin()+4,x); else cur.insert(cur.begin()+3,x); } } return cur; } void orderCoins() { FOR(i,1,7) { int x; cin >> x; val[x] = i; } int a = getHeaviest(1,2,3), b = getLightest(1,2,3); vi cur = {b,6-a-b,a}; FOR(i,4,7) cur = ins(cur,i); answer(cur); }

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

In file included from grader.c:2:0:
graderlib.c: In function 'void answer(int*)':
graderlib.c:53:5: warning: this 'if' clause does not guard... [-Wmisleading-indentation]
     if (_ghksjhdfkae19ga_ > 1) 
     ^~
graderlib.c:56:2: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if'
  for (i = 0; i < 6; i++) {
  ^~~
scales.cpp: In function 'void init(int)':
scales.cpp:76:15: warning: unused parameter 'T' [-Wunused-parameter]
 void init(int T) {}
               ^
scales.cpp: In function 'void orderCoins()':
scales.cpp:109:9: error: 'val' was not declared in this scope
         val[x] = i;
         ^~~
scales.cpp:109:9: note: suggested alternative: 'vpl'
         val[x] = i;
         ^~~
         vpl
scales.cpp:114:15: error: cannot convert 'vi {aka std::vector<int>}' to 'int*' for argument '1' to 'void answer(int*)'
     answer(cur);
               ^