Submission #104445

#TimeUsernameProblemLanguageResultExecution timeMemory
104445eriksuenderhaufRobots (IOI13_robots)C++11
Compilation error
0 ms0 KiB
#pragma GCC optimize("O3") #include <bits/stdc++.h> #include "robots.h" //#include "grader.h" #define enl printf("\n") #define case(t) printf("Case #%d: ", (t)) #define ni(n) scanf("%d", &(n)) #define nl(n) scanf("%I64d", &(n)) #define nai(a, n) for (int i = 0; i < (n); i++) ni(a[i]) #define nal(a, n) for (int i = 0; i < (n); i++) nl(a[i]) #define pri(n) printf("%d\n", (n)) #define prl(n) printf("%I64d\n", (n)) #define pii pair<int, int> #define pll pair<long long, long long> #define vii vector<pii> #define vi vector<int> #define pb push_back #define mp make_pair #define fi first #define se second using namespace std; typedef long long int ll; const double pi = acos(-1); const int MOD = 1e9 + 9; const int INF = 1e9 + 7; const int MAXN = 3e5 + 5; const double eps = 1e-9; int x[MAXN], y[MAXN], vis[MAXN]; pii arr[MAXN], narr[MAXN]; int a, b, t; bool ok(int cnt) { memset(vis, 0, sizeof vis); sort(arr, arr + t, [](pii lhs, pii rhs) { if (lhs.fi == rhs.fi) return lhs.se > rhs.se; return lhs.fi < rhs.fi; }); int n = 0; for (int i = t - 1; it = a-1; it >= 0 && i >= 0; it--) { int j = i, cur = 0; while (j >= 0 && cur <= cnt) { if (x[it] > arr[j].fi) cur++, vis[j] = 1; else narr[n++] = {arr[j], j}; j--; } i = j; } sort(narr, narr + n); for (int i = n - 1; it = b-1; it >= 0 && i >= 0; it--) { int j = i, cur = 0; while (j >= 0 && cur <= cnt) { if (y[it] > arr[j].fi) cur++, vis[arr[j].se] = 1; j--; } i = j; } for (int i = 0; i < t; i++) if (!vis[i]) return false; return true; } //w<x;s<y int putaway(int A, int B, int T, int X[], int Y[], int W[], int S[]) { a = A, b = B, t = T; int mxX = 0, mxY = 0; for (int i = 0; i < a; i++) { x[i] = X[i]; mxX = max(mxX, X[i]); } sort(x, x + a); for (int i = 0; i < b; i++) { y[i] = Y[i]; mxY = max(mxY, Y[i]); } sort(y, y + b); for (int i = 0; i < t; i++) { arr[i] = {w[i], s[i]}; if (w[i] >= mxX || s[i] >= mxY) return -1; } int lo = 1, hi = t, ret = t; while (lo <= hi) { int mi = (lo + hi) / 2; if (ok(mi)) hi = mi - 1, ret = mi; else lo = mi + 1; } return ret; }

Compilation message (stderr)

robots.cpp: In function 'bool ok(int)':
robots.cpp:40:22: error: 'it' was not declared in this scope
  for (int i = t - 1; it = a-1; it >= 0 && i >= 0; it--) {
                      ^~
robots.cpp:40:22: note: suggested alternative: 'i'
  for (int i = t - 1; it = a-1; it >= 0 && i >= 0; it--) {
                      ^~
                      i
robots.cpp:40:49: error: expected ')' before ';' token
  for (int i = t - 1; it = a-1; it >= 0 && i >= 0; it--) {
                                                 ^
robots.cpp:40:2: warning: this 'for' clause does not guard... [-Wmisleading-indentation]
  for (int i = t - 1; it = a-1; it >= 0 && i >= 0; it--) {
  ^~~
robots.cpp:40:51: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'for'
  for (int i = t - 1; it = a-1; it >= 0 && i >= 0; it--) {
                                                   ^~
robots.cpp:40:51: error: 'it' was not declared in this scope
robots.cpp:40:51: note: suggested alternative: 't'
  for (int i = t - 1; it = a-1; it >= 0 && i >= 0; it--) {
                                                   ^~
                                                   t
robots.cpp:52:49: error: expected ')' before ';' token
  for (int i = n - 1; it = b-1; it >= 0 && i >= 0; it--) {
                                                 ^
robots.cpp:52:2: warning: this 'for' clause does not guard... [-Wmisleading-indentation]
  for (int i = n - 1; it = b-1; it >= 0 && i >= 0; it--) {
  ^~~
robots.cpp:52:51: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'for'
  for (int i = n - 1; it = b-1; it >= 0 && i >= 0; it--) {
                                                   ^~
robots.cpp: In function 'int putaway(int, int, int, int*, int*, int*, int*)':
robots.cpp:82:13: error: 'w' was not declared in this scope
   arr[i] = {w[i], s[i]};
             ^
robots.cpp:82:19: error: 's' was not declared in this scope
   arr[i] = {w[i], s[i]};
                   ^
robots.cpp:82:23: error: no match for 'operator=' (operand types are 'std::pair<int, int>' and '<brace-enclosed initializer list>')
   arr[i] = {w[i], s[i]};
                       ^
In file included from /usr/include/c++/7/bits/stl_algobase.h:64:0,
                 from /usr/include/c++/7/bits/char_traits.h:39,
                 from /usr/include/c++/7/ios:40,
                 from /usr/include/c++/7/istream:38,
                 from /usr/include/c++/7/sstream:38,
                 from /usr/include/c++/7/complex:45,
                 from /usr/include/c++/7/ccomplex:39,
                 from /usr/include/x86_64-linux-gnu/c++/7/bits/stdc++.h:52,
                 from robots.cpp:2:
/usr/include/c++/7/bits/stl_pair.h:367:7: note: candidate: std::pair<_T1, _T2>& std::pair<_T1, _T2>::operator=(typename std::conditional<std::__and_<std::is_copy_assignable<_Tp>, std::is_copy_assignable<_T2> >::value, const std::pair<_T1, _T2>&, const std::__nonesuch_no_braces&>::type) [with _T1 = int; _T2 = int; typename std::conditional<std::__and_<std::is_copy_assignable<_Tp>, std::is_copy_assignable<_T2> >::value, const std::pair<_T1, _T2>&, const std::__nonesuch_no_braces&>::type = const std::pair<int, int>&]
       operator=(typename conditional<
       ^~~~~~~~
/usr/include/c++/7/bits/stl_pair.h:367:7: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'std::conditional<true, const std::pair<int, int>&, const std::__nonesuch_no_braces&>::type {aka const std::pair<int, int>&}'
/usr/include/c++/7/bits/stl_pair.h:384:7: note: candidate: std::pair<_T1, _T2>& std::pair<_T1, _T2>::operator=(typename std::conditional<std::__and_<std::is_move_assignable<_Tp>, std::is_move_assignable<_T2> >::value, std::pair<_T1, _T2>&&, std::__nonesuch_no_braces&&>::type) [with _T1 = int; _T2 = int; typename std::conditional<std::__and_<std::is_move_assignable<_Tp>, std::is_move_assignable<_T2> >::value, std::pair<_T1, _T2>&&, std::__nonesuch_no_braces&&>::type = std::pair<int, int>&&]
       operator=(typename conditional<
       ^~~~~~~~
/usr/include/c++/7/bits/stl_pair.h:384:7: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'std::conditional<true, std::pair<int, int>&&, std::__nonesuch_no_braces&&>::type {aka std::pair<int, int>&&}'
/usr/include/c++/7/bits/stl_pair.h:400:2: note: candidate: template<class _U1, class _U2> typename std::enable_if<std::__and_<std::is_assignable<_T1&, const _U1&>, std::is_assignable<_T2&, const _U2&> >::value, std::pair<_T1, _T2>&>::type std::pair<_T1, _T2>::operator=(const std::pair<_U1, _U2>&) [with _U1 = _U1; _U2 = _U2; _T1 = int; _T2 = int]
  operator=(const pair<_U1, _U2>& __p)
  ^~~~~~~~
/usr/include/c++/7/bits/stl_pair.h:400:2: note:   template argument deduction/substitution failed:
robots.cpp:82:23: note:   couldn't deduce template parameter '_U1'
   arr[i] = {w[i], s[i]};
                       ^
In file included from /usr/include/c++/7/bits/stl_algobase.h:64:0,
                 from /usr/include/c++/7/bits/char_traits.h:39,
                 from /usr/include/c++/7/ios:40,
                 from /usr/include/c++/7/istream:38,
                 from /usr/include/c++/7/sstream:38,
                 from /usr/include/c++/7/complex:45,
                 from /usr/include/c++/7/ccomplex:39,
                 from /usr/include/x86_64-linux-gnu/c++/7/bits/stdc++.h:52,
                 from robots.cpp:2:
/usr/include/c++/7/bits/stl_pair.h:411:2: note: candidate: template<class _U1, class _U2> typename std::enable_if<std::__and_<std::is_assignable<_T1&, _U1&&>, std::is_assignable<_T2&, _U2&&> >::value, std::pair<_T1, _T2>&>::type std::pair<_T1, _T2>::operator=(std::pair<_U1, _U2>&&) [with _U1 = _U1; _U2 = _U2; _T1 = int; _T2 = int]
  operator=(pair<_U1, _U2>&& __p)
  ^~~~~~~~
/usr/include/c++/7/bits/stl_pair.h:411:2: note:   template argument deduction/substitution failed:
robots.cpp:82:23: note:   couldn't deduce template parameter '_U1'
   arr[i] = {w[i], s[i]};
                       ^