제출 #782644

#제출 시각아이디문제언어결과실행 시간메모리
782644fatemetmhrBoxes with souvenirs (IOI15_boxes)C++17
컴파일 에러
0 ms0 KiB
// ~ Be Name Khoda ~ // #include "boxes.h" #include <bits/stdc++.h> #pragma GCC optimize ("O3") //#pragma GCC target("avx2") //#pragma GCC optimize("unroll-loops,Ofast") using namespace std; typedef long long ll; #define pb push_back #define mp make_pair #define all(x) x.begin(), x.end() #define fi first #define se second const int maxn = 1e6 + 10; const int maxn5 = 5e5 + 10; const int maxnt = 1.2e6 + 10; const int maxn3 = 1e3 + 10; const int mod = 1e9 + 7; const ll inf = 1e18; int per[2][maxn5]; ll L, dp[2][maxn5], pos[maxn5]; ll dis(int ty, int id){ ll x = pos[id]; if(ty) return x; return L - x; } bool cmp0(int x, int y){ return {dis(0, x), x} < {dis(0, y), y}; } bool cmp1(int x, int y){ return {dis(1, x), -x} < {dis(1, y), -y}; } long long delivery(int n, int k, int l, int p[]) { //cout << "here " << endl; L = l; ll sum = 0; for(int i = 0; i < n; i++) pos[i] = p[i]; for(int i = 0; i < n; i++){ sum += min(dis(0, i), dis(1, i)) * 2; //cout << i << ' ' << pos[i] << ' ' << sum << endl; per[0][i] = per[1][i] = i; } //return sum; sort(per[0], per[0] + n, cmp0); sort(per[1], per[1] + n, cmp1); for(int tt = 0; tt < 2; tt++){ for(int i = 0; i < n; i++){ dp[tt][per[tt][i]] = (i >= k ? dp[tt][per[tt][i - k]] : 0) + 2 * dis(tt, per[tt][i]); //cout << tt << ' ' << i << ' ' << dp[tt][per[tt][i]] << ' ' << per[tt][i] << endl; } } ll ans = min(dp[1][per[1][n - 1]], dp[0][per[0][n - 1]]); //cout << ans << ' ' << dp[1][per[1][n - 1]] << ' ' << dp[0][per[0][n - 1]] << ' ' << per[0][n - 1]<< endl; for(int i = 0; i < n - 1; i++){ ans = min(ans, dp[0][per[0][i]] + dp[1][per[0][i + 1]]); //cout << "ha? " << ans << ' ' << i << ' ' << dp[0][per[0][i]] << ' ' << dp[1][per[0][i + 1]] << ' ' << per[0][i] << ' ' << per[0][i + 1] << endl; } //cout << ans << endl; return ans; }

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

boxes.cpp: In function 'bool cmp0(int, int)':
boxes.cpp:39:25: error: cannot convert '<brace-enclosed initializer list>' to 'bool' in return
   39 |     return {dis(0, x), x} < {dis(0, y), y};
      |                         ^
boxes.cpp:39:26: error: expected ';' before '<' token
   39 |     return {dis(0, x), x} < {dis(0, y), y};
      |                          ^~
      |                          ;
boxes.cpp:39:27: error: expected primary-expression before '<' token
   39 |     return {dis(0, x), x} < {dis(0, y), y};
      |                           ^
boxes.cpp:39:29: error: expected primary-expression before '{' token
   39 |     return {dis(0, x), x} < {dis(0, y), y};
      |                             ^
boxes.cpp:38:22: warning: unused parameter 'y' [-Wunused-parameter]
   38 | bool cmp0(int x, int y){
      |                  ~~~~^
boxes.cpp: In function 'bool cmp1(int, int)':
boxes.cpp:43:26: error: cannot convert '<brace-enclosed initializer list>' to 'bool' in return
   43 |     return {dis(1, x), -x} < {dis(1, y), -y};
      |                          ^
boxes.cpp:43:27: error: expected ';' before '<' token
   43 |     return {dis(1, x), -x} < {dis(1, y), -y};
      |                           ^~
      |                           ;
boxes.cpp:43:28: error: expected primary-expression before '<' token
   43 |     return {dis(1, x), -x} < {dis(1, y), -y};
      |                            ^
boxes.cpp:43:30: error: expected primary-expression before '{' token
   43 |     return {dis(1, x), -x} < {dis(1, y), -y};
      |                              ^
boxes.cpp:42:22: warning: unused parameter 'y' [-Wunused-parameter]
   42 | bool cmp1(int x, int y){
      |                  ~~~~^