Submission #1002929

#TimeUsernameProblemLanguageResultExecution timeMemory
1002929pedroslreyIzvanzemaljci (COI21_izvanzemaljci)C++14
Compilation error
0 ms0 KiB
#include <bits/stdc++.h> #define int long long using namespace std; using lli = long long; pair<vector<int>, lli> calc(vector<pair<int, int>> points) { map<int, vector<pair<int, int>>> batch; for (auto [x, y]: points) batch[x].emplace_back(x, y); multiset<int> xs, ys; for (auto [x, y]: points) { xs.insert(x); ys.insert(y); } int d = max(*xs.rbegin() - *xs.begin(), *ys.rbegin() - *ys.begin()); d = max(d, 1); int mx_x = -1e9, mn_x = 1e9, mx_y = -1e9, mn_y = 1e9; vector<int> ans{*xs.begin(), *ys.begin(), d, (int)2e9, (int)2e9, 1}; lli best = 1LL*d*d + 1; for (auto [k, abas]: batch) { for (auto [x, y]: abas) { assert(xs.find(x) != xs.end()); assert(ys.find(y) != ys.end()); if (xs.empty()) break; mx_x = max(mx_x, x); mn_x = min(mn_x, x); mx_y = max(mx_y, y); mn_y = min(mn_y, y); xs.erase(xs.find(x)); ys.erase(ys.find(y)); } if (xs.empty()) break; int d1 = max(mx_x - mn_x, mx_y - mn_y); int d2 = max(*xs.rbegin() - *xs.begin(), *ys.rbegin() - *ys.begin()); d1 = max(d1, 1); d2 = max(d2, 1); lli cost1 = 1LL*d1*d1; lli cost2 = 1LL*d2*d2; if (cost1 + cost2 < best) { best = cost1 + cost2; if (mn_x + d1 > k) ans = vector<int>{k - d1, mn_y, d1, *xs.begin(), *ys.begin(), d2}; else ans = vector<int>{mn_x, mn_y, d1, *xs.begin(), *ys.begin(), d2}; } } return {ans, best}; } main() { int n, k; cin >> n >> k; vector<pair<int, int>> points(n); for (auto &[x, y]: points) cin >> x >> y; if (k == 1) { multiset<int> xs, ys; for (auto [x, y]: points) { xs.insert(x); ys.insert(y); } int d2 = max(*xs.rbegin() - *xs.begin(), *ys.rbegin() - *ys.begin()); d2 = max(d2, 1); cout << *xs.begin() << " " << *ys.begin() << " " << d2 << "\n"; return 0; } if (n == 1) { cout << points[0].first << " " << points[0].second << " 1\n"; cout << points[0].first + 2 << " " << points[0].second + 2 << " 1\n"; return 0; } auto [ans1, best1] = calc(points); for (auto &[x, y]: points) swap(x, y); auto [ans2, best2] = calc(points); if (best2 < best1) { swap(ans2, ans1); swap(ans1[0], ans1[1]); swap(ans1[3], ans1[4]); } for (int i = 0; i < 6; ++i) cout << ans1[i] << (i == 2 ? "\n" : " "); cout << "\n"; }

Compilation message (stderr)

izvanzemaljci.cpp: In function 'std::pair<std::vector<long long int>, long long int> calc(std::vector<std::pair<long long int, long long int> >)':
izvanzemaljci.cpp:9:12: warning: structured bindings only available with '-std=c++17' or '-std=gnu++17'
    9 |  for (auto [x, y]: points)
      |            ^
izvanzemaljci.cpp:13:12: warning: structured bindings only available with '-std=c++17' or '-std=gnu++17'
   13 |  for (auto [x, y]: points) {
      |            ^
izvanzemaljci.cpp:19:14: error: no matching function for call to 'max(long long int&, int)'
   19 |  d = max(d, 1);
      |              ^
In file included from /usr/include/c++/10/bits/char_traits.h:39,
                 from /usr/include/c++/10/ios:40,
                 from /usr/include/c++/10/istream:38,
                 from /usr/include/c++/10/sstream:38,
                 from /usr/include/c++/10/complex:45,
                 from /usr/include/c++/10/ccomplex:39,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:54,
                 from izvanzemaljci.cpp:1:
/usr/include/c++/10/bits/stl_algobase.h:254:5: note: candidate: 'template<class _Tp> constexpr const _Tp& std::max(const _Tp&, const _Tp&)'
  254 |     max(const _Tp& __a, const _Tp& __b)
      |     ^~~
/usr/include/c++/10/bits/stl_algobase.h:254:5: note:   template argument deduction/substitution failed:
izvanzemaljci.cpp:19:14: note:   deduced conflicting types for parameter 'const _Tp' ('long long int' and 'int')
   19 |  d = max(d, 1);
      |              ^
In file included from /usr/include/c++/10/bits/char_traits.h:39,
                 from /usr/include/c++/10/ios:40,
                 from /usr/include/c++/10/istream:38,
                 from /usr/include/c++/10/sstream:38,
                 from /usr/include/c++/10/complex:45,
                 from /usr/include/c++/10/ccomplex:39,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:54,
                 from izvanzemaljci.cpp:1:
/usr/include/c++/10/bits/stl_algobase.h:300:5: note: candidate: 'template<class _Tp, class _Compare> constexpr const _Tp& std::max(const _Tp&, const _Tp&, _Compare)'
  300 |     max(const _Tp& __a, const _Tp& __b, _Compare __comp)
      |     ^~~
/usr/include/c++/10/bits/stl_algobase.h:300:5: note:   template argument deduction/substitution failed:
izvanzemaljci.cpp:19:14: note:   deduced conflicting types for parameter 'const _Tp' ('long long int' and 'int')
   19 |  d = max(d, 1);
      |              ^
In file included from /usr/include/c++/10/algorithm:62,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:65,
                 from izvanzemaljci.cpp:1:
/usr/include/c++/10/bits/stl_algo.h:3480:5: note: candidate: 'template<class _Tp> constexpr _Tp std::max(std::initializer_list<_Tp>)'
 3480 |     max(initializer_list<_Tp> __l)
      |     ^~~
/usr/include/c++/10/bits/stl_algo.h:3480:5: note:   template argument deduction/substitution failed:
izvanzemaljci.cpp:19:14: note:   mismatched types 'std::initializer_list<_Tp>' and 'long long int'
   19 |  d = max(d, 1);
      |              ^
In file included from /usr/include/c++/10/algorithm:62,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:65,
                 from izvanzemaljci.cpp:1:
/usr/include/c++/10/bits/stl_algo.h:3486:5: note: candidate: 'template<class _Tp, class _Compare> constexpr _Tp std::max(std::initializer_list<_Tp>, _Compare)'
 3486 |     max(initializer_list<_Tp> __l, _Compare __comp)
      |     ^~~
/usr/include/c++/10/bits/stl_algo.h:3486:5: note:   template argument deduction/substitution failed:
izvanzemaljci.cpp:19:14: note:   mismatched types 'std::initializer_list<_Tp>' and 'long long int'
   19 |  d = max(d, 1);
      |              ^
izvanzemaljci.cpp:23:12: warning: structured bindings only available with '-std=c++17' or '-std=gnu++17'
   23 |  for (auto [k, abas]: batch) {
      |            ^
izvanzemaljci.cpp:24:13: warning: structured bindings only available with '-std=c++17' or '-std=gnu++17'
   24 |   for (auto [x, y]: abas) {
      |             ^
izvanzemaljci.cpp:37:17: error: no matching function for call to 'max(long long int&, int)'
   37 |   d1 = max(d1, 1);
      |                 ^
In file included from /usr/include/c++/10/bits/char_traits.h:39,
                 from /usr/include/c++/10/ios:40,
                 from /usr/include/c++/10/istream:38,
                 from /usr/include/c++/10/sstream:38,
                 from /usr/include/c++/10/complex:45,
                 from /usr/include/c++/10/ccomplex:39,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:54,
                 from izvanzemaljci.cpp:1:
/usr/include/c++/10/bits/stl_algobase.h:254:5: note: candidate: 'template<class _Tp> constexpr const _Tp& std::max(const _Tp&, const _Tp&)'
  254 |     max(const _Tp& __a, const _Tp& __b)
      |     ^~~
/usr/include/c++/10/bits/stl_algobase.h:254:5: note:   template argument deduction/substitution failed:
izvanzemaljci.cpp:37:17: note:   deduced conflicting types for parameter 'const _Tp' ('long long int' and 'int')
   37 |   d1 = max(d1, 1);
      |                 ^
In file included from /usr/include/c++/10/bits/char_traits.h:39,
                 from /usr/include/c++/10/ios:40,
                 from /usr/include/c++/10/istream:38,
                 from /usr/include/c++/10/sstream:38,
                 from /usr/include/c++/10/complex:45,
                 from /usr/include/c++/10/ccomplex:39,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:54,
                 from izvanzemaljci.cpp:1:
/usr/include/c++/10/bits/stl_algobase.h:300:5: note: candidate: 'template<class _Tp, class _Compare> constexpr const _Tp& std::max(const _Tp&, const _Tp&, _Compare)'
  300 |     max(const _Tp& __a, const _Tp& __b, _Compare __comp)
      |     ^~~
/usr/include/c++/10/bits/stl_algobase.h:300:5: note:   template argument deduction/substitution failed:
izvanzemaljci.cpp:37:17: note:   deduced conflicting types for parameter 'const _Tp' ('long long int' and 'int')
   37 |   d1 = max(d1, 1);
      |                 ^
In file included from /usr/include/c++/10/algorithm:62,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:65,
                 from izvanzemaljci.cpp:1:
/usr/include/c++/10/bits/stl_algo.h:3480:5: note: candidate: 'template<class _Tp> constexpr _Tp std::max(std::initializer_list<_Tp>)'
 3480 |     max(initializer_list<_Tp> __l)
      |     ^~~
/usr/include/c++/10/bits/stl_algo.h:3480:5: note:   template argument deduction/substitution failed:
izvanzemaljci.cpp:37:17: note:   mismatched types 'std::initializer_list<_Tp>' and 'long long int'
   37 |   d1 = max(d1, 1);
      |                 ^
In file included from /usr/include/c++/10/algorithm:62,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:65,
                 from izvanzemaljci.cpp:1:
/usr/include/c++/10/bits/stl_algo.h:3486:5: note: candidate: 'template<class _Tp, class _Compare> constexpr _Tp std::max(std::initializer_list<_Tp>, _Compare)'
 3486 |     max(initializer_list<_Tp> __l, _Compare __comp)
      |     ^~~
/usr/include/c++/10/bits/stl_algo.h:3486:5: note:   template argument deduction/substitution failed:
izvanzemaljci.cpp:37:17: note:   mismatched types 'std::initializer_list<_Tp>' and 'long long int'
   37 |   d1 = max(d1, 1);
      |                 ^
izvanzemaljci.cpp:38:17: error: no matching function for call to 'max(long long int&, int)'
   38 |   d2 = max(d2, 1);
      |                 ^
In file included from /usr/include/c++/10/bits/char_traits.h:39,
                 from /usr/include/c++/10/ios:40,
                 from /usr/include/c++/10/istream:38,
                 from /usr/include/c++/10/sstream:38,
                 from /usr/include/c++/10/complex:45,
                 from /usr/include/c++/10/ccomplex:39,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:54,
                 from izvanzemaljci.cpp:1:
/usr/include/c++/10/bits/stl_algobase.h:254:5: note: candidate: 'template<class _Tp> constexpr const _Tp& std::max(const _Tp&, const _Tp&)'
  254 |     max(const _Tp& __a, const _Tp& __b)
      |     ^~~
/usr/include/c++/10/bits/stl_algobase.h:254:5: note:   template argument deduction/substitution failed:
izvanzemaljci.cpp:38:17: note:   deduced conflicting types for parameter 'const _Tp' ('long long int' and 'int')
   38 |   d2 = max(d2, 1);
      |                 ^
In file included from /usr/include/c++/10/bits/char_traits.h:39,
                 from /usr/include/c++/10/ios:40,
                 from /usr/include/c++/10/istream:38,
                 from /usr/include/c++/10/sstream:38,
                 from /usr/include/c++/10/complex:45,
                 from /usr/include/c++/10/ccomplex:39,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:54,
                 from izvanzemaljci.cpp:1:
/usr/include/c++/10/bits/stl_algobase.h:300:5: note: candidate: 'template<class _Tp, class _Compare> constexpr const _Tp& std::max(const _Tp&, const _Tp&, _Compare)'
  300 |     max(const _Tp& __a, const _Tp& __b, _Compare __comp)
      |     ^~~
/usr/include/c++/10/bits/stl_algobase.h:300:5: note:   template argument deduction/substitution failed:
izvanzemaljci.cpp:38:17: note:   deduced conflicting types for parameter 'const _Tp' ('long long int' and 'int')
   38 |   d2 = max(d2, 1);
      |                 ^
In file included from /usr/include/c++/10/algorithm:62,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:65,
                 from izvanzemaljci.cpp:1:
/usr/include/c++/10/bits/stl_algo.h:3480:5: note: candidate: 'template<class _Tp> constexpr _Tp std::max(std::initializer_list<_Tp>)'
 3480 |     max(initializer_list<_Tp> __l)
      |     ^~~
/usr/include/c++/10/bits/stl_algo.h:3480:5: note:   template argument deduction/substitution failed:
izvanzemaljci.cpp:38:17: note:   mismatched types 'std::initializer_list<_Tp>' and 'long long int'
   38 |   d2 = max(d2, 1);
      |                 ^
In file included from /usr/include/c++/10/algorithm:62,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:65,
                 from izvanzemaljci.cpp:1:
/usr/include/c++/10/bits/stl_algo.h:3486:5: note: candidate: 'template<class _Tp, class _Compare> constexpr _Tp std::max(std::initializer_list<_Tp>, _Compare)'
 3486 |     max(initializer_list<_Tp> __l, _Compare __comp)
      |     ^~~
/usr/include/c++/10/bits/stl_algo.h:3486:5: note:   template argument deduction/substitution failed:
izvanzemaljci.cpp:38:17: note:   mismatched types 'std::initializer_list<_Tp>' and 'long long int'
   38 |   d2 = max(d2, 1);
      |                 ^
izvanzemaljci.cpp: At global scope:
izvanzemaljci.cpp:55:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   55 | main() {
      | ^~~~
izvanzemaljci.cpp: In function 'int main()':
izvanzemaljci.cpp:60:13: warning: structured bindings only available with '-std=c++17' or '-std=gnu++17'
   60 |  for (auto &[x, y]: points)
      |             ^
izvanzemaljci.cpp:65:13: warning: structured bindings only available with '-std=c++17' or '-std=gnu++17'
   65 |   for (auto [x, y]: points) {
      |             ^
izvanzemaljci.cpp:71:17: error: no matching function for call to 'max(long long int&, int)'
   71 |   d2 = max(d2, 1);
      |                 ^
In file included from /usr/include/c++/10/bits/char_traits.h:39,
                 from /usr/include/c++/10/ios:40,
                 from /usr/include/c++/10/istream:38,
                 from /usr/include/c++/10/sstream:38,
                 from /usr/include/c++/10/complex:45,
                 from /usr/include/c++/10/ccomplex:39,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:54,
                 from izvanzemaljci.cpp:1:
/usr/include/c++/10/bits/stl_algobase.h:254:5: note: candidate: 'template<class _Tp> constexpr const _Tp& std::max(const _Tp&, const _Tp&)'
  254 |     max(const _Tp& __a, const _Tp& __b)
      |     ^~~
/usr/include/c++/10/bits/stl_algobase.h:254:5: note:   template argument deduction/substitution failed:
izvanzemaljci.cpp:71:17: note:   deduced conflicting types for parameter 'const _Tp' ('long long int' and 'int')
   71 |   d2 = max(d2, 1);
      |                 ^
In file included from /usr/include/c++/10/bits/char_traits.h:39,
                 from /usr/include/c++/10/ios:40,
                 from /usr/include/c++/10/istream:38,
                 from /usr/include/c++/10/sstream:38,
                 from /usr/include/c++/10/complex:45,
                 from /usr/include/c++/10/ccomplex:39,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:54,
                 from izvanzemaljci.cpp:1:
/usr/include/c++/10/bits/stl_algobase.h:300:5: note: candidate: 'template<class _Tp, class _Compare> constexpr const _Tp& std::max(const _Tp&, const _Tp&, _Compare)'
  300 |     max(const _Tp& __a, const _Tp& __b, _Compare __comp)
      |     ^~~
/usr/include/c++/10/bits/stl_algobase.h:300:5: note:   template argument deduction/substitution failed:
izvanzemaljci.cpp:71:17: note:   deduced conflicting types for parameter 'const _Tp' ('long long int' and 'int')
   71 |   d2 = max(d2, 1);
      |                 ^
In file included from /usr/include/c++/10/algorithm:62,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:65,
                 from izvanzemaljci.cpp:1:
/usr/include/c++/10/bits/stl_algo.h:3480:5: note: candidate: 'template<class _Tp> constexpr _Tp std::max(std::initializer_list<_Tp>)'
 3480 |     max(initializer_list<_Tp> __l)
      |     ^~~
/usr/include/c++/10/bits/stl_algo.h:3480:5: note:   template argument deduction/substitution failed:
izvanzemaljci.cpp:71:17: note:   mismatched types 'std::initializer_list<_Tp>' and 'long long int'
   71 |   d2 = max(d2, 1);
      |                 ^
In file included from /usr/include/c++/10/algorithm:62,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:65,
                 from izvanzemaljci.cpp:1:
/usr/include/c++/10/bits/stl_algo.h:3486:5: note: candidate: 'template<class _Tp, class _Compare> constexpr _Tp std::max(std::initializer_list<_Tp>, _Compare)'
 3486 |     max(initializer_list<_Tp> __l, _Compare __comp)
      |     ^~~
/usr/include/c++/10/bits/stl_algo.h:3486:5: note:   template argument deduction/substitution failed:
izvanzemaljci.cpp:71:17: note:   mismatched types 'std::initializer_list<_Tp>' and 'long long int'
   71 |   d2 = max(d2, 1);
      |                 ^
izvanzemaljci.cpp:83:7: warning: structured bindings only available with '-std=c++17' or '-std=gnu++17'
   83 |  auto [ans1, best1] = calc(points);
      |       ^
izvanzemaljci.cpp:84:13: warning: structured bindings only available with '-std=c++17' or '-std=gnu++17'
   84 |  for (auto &[x, y]: points) swap(x, y);
      |             ^
izvanzemaljci.cpp:85:7: warning: structured bindings only available with '-std=c++17' or '-std=gnu++17'
   85 |  auto [ans2, best2] = calc(points);
      |       ^