Submission #366505

#TimeUsernameProblemLanguageResultExecution timeMemory
366505kartel3D Histogram (COCI20_histogram)C++14
Compilation error
0 ms0 KiB
#include <bits/stdc++.h> #define in(x) freopen(x, "r", stdin) #define out(x) freopen(x, "w", stdout) #include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/tree_policy.hpp> //#pragma GCC optimize("Ofast") //#pragma GCC optimize("unroll-loops") //#pragma GCC optimize("-O3") #define F first #define S second #define pb push_back #define M ll(1e9 + 7) #define sz(x) (int)x.size() #define re return #define oo ll(1e18) #define el '\n' #define pii pair <int, int> #define all(x) (x).begin(), (x).end() #define arr_all(x, n) (x + 1), (x + 1 + n) #define vi vector<int> #define eps (ld)1e-6 using namespace std; using namespace __gnu_pbds; typedef tree <pii, null_type, less_equal <pii> , rb_tree_tag, tree_order_statistics_node_update> ordered_set; typedef long long ll; typedef long double ld; typedef unsigned long long ull; typedef short int si; ordered_set os; const int N = 1e5 + 500; ll ans[N]; ll cnt[4], ps[N][3], n; int a[3][N]; int main() { // srand(time(0)); ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); // in("turtle.in"); // out("turtle.out"); // inf("input.txt"); // out("output.txt"); cin >> n; for (int i = 0; i < 3; i++) { for (int j = 1; j <= n; j++) { cin >> a[i][j]; ps[a[i][j]][i] = j; } } if (n > 3000) { map <int, int> mp; for (int i = 1; i < n; i++) { bool bad = 0; if (mp[a[0][i]]) bad = 1; if (!bad) { cnt[0] += n - mp.size(); for (int j = 1; j < 2; j++) { if (a[j][i] != a[0][i] && !mp[a[j][i]]) { if (ps[a[0][i]][j] < ps[a[j][i]][0]) cnt[0]--; } } } for (int j = 0; j < 3; j++) mp[a[j][i]] = 1; } mp.clear(); for (int i = 1; i < n; i++) { bool bad = 0; if (mp[a[1][i]]) { bad = 1; } if (!bad) { cnt[1] += n - mp.size(); for (int j = 0; j < 3; j++) { if (j == 1) continue; if (a[j][i] != a[1][i] && !mp[a[j][i]]) { if (ps[a[1][i]][j] < ps[a[j][i]][1]) cnt[1]--; } } } for (int j = 0; j < 3; j++) mp[a[j][i]] = 1; } for (int i = 0; i < 2; i++) cout << cnt[i] << " "; cout << n * 1ll * (n - 1) / 2ll - cnt[0] - cnt[1] << el; for (int i = 0; i < n; i++) cout << "0 "; return 0; } for (int i = 1; i <= n; i++) for (int j = i + 1; j <= n; j++) { int mn = 1e9; for (int k = 0; k < 3; k++) mn = min(mn, min(ps[i][k], ps[j][k])); int cnt1 = 0, last; for (int k = 0; k < 3; k++) { if (ps[i][k] == mn || ps[j][k] == mn) cnt1++, last = k; } if (cnt1 == 1) { cnt[last]++; ans[i] += (ps[i][last] < ps[j][last]); ans[j] += (ps[j][last] < ps[i][last]); continue; } int mn1 = 1e9; for (int k = 0; k < 3; k++) { if (ps[i][k] == mn && ps[i][k] < ps[j][k]) mn1 = min(mn1, ps[j][k]); else if (ps[j][k] == mn && ps[j][k] < ps[i][k]) mn1 = min(mn1, ps[i][k]); } for (int k = 0; k < 3; k++) { if (ps[i][k] == mn && ps[i][k] < ps[j][k]) { if (ps[j][k] == mn1) { cnt[k]++; ans[i]++; break; } } else if (ps[j][k] == mn && ps[j][k] < ps[i][k]) { if (ps[i][k] == mn1) { cnt[k]++; ans[j]++; break; } } } } for (int i = 0; i < 3; i++) cout << cnt[i] << " "; cout << el; for (int i = 1; i <= n; i++) { cout << ans[i] << " "; } }

Compilation message (stderr)

histogram.cpp: In function 'int main()':
histogram.cpp:120:49: error: no matching function for call to 'min(int&, const long long int&)'
  120 |             mn = min(mn, min(ps[i][k], ps[j][k]));
      |                                                 ^
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 histogram.cpp:1:
/usr/include/c++/10/bits/stl_algobase.h:230:5: note: candidate: 'template<class _Tp> constexpr const _Tp& std::min(const _Tp&, const _Tp&)'
  230 |     min(const _Tp& __a, const _Tp& __b)
      |     ^~~
/usr/include/c++/10/bits/stl_algobase.h:230:5: note:   template argument deduction/substitution failed:
histogram.cpp:120:49: note:   deduced conflicting types for parameter 'const _Tp' ('int' and 'long long int')
  120 |             mn = min(mn, min(ps[i][k], ps[j][k]));
      |                                                 ^
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 histogram.cpp:1:
/usr/include/c++/10/bits/stl_algobase.h:278:5: note: candidate: 'template<class _Tp, class _Compare> constexpr const _Tp& std::min(const _Tp&, const _Tp&, _Compare)'
  278 |     min(const _Tp& __a, const _Tp& __b, _Compare __comp)
      |     ^~~
/usr/include/c++/10/bits/stl_algobase.h:278:5: note:   template argument deduction/substitution failed:
histogram.cpp:120:49: note:   deduced conflicting types for parameter 'const _Tp' ('int' and 'long long int')
  120 |             mn = min(mn, min(ps[i][k], ps[j][k]));
      |                                                 ^
In file included from /usr/include/c++/10/algorithm:62,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:65,
                 from histogram.cpp:1:
/usr/include/c++/10/bits/stl_algo.h:3468:5: note: candidate: 'template<class _Tp> constexpr _Tp std::min(std::initializer_list<_Tp>)'
 3468 |     min(initializer_list<_Tp> __l)
      |     ^~~
/usr/include/c++/10/bits/stl_algo.h:3468:5: note:   template argument deduction/substitution failed:
histogram.cpp:120:49: note:   mismatched types 'std::initializer_list<_Tp>' and 'int'
  120 |             mn = min(mn, min(ps[i][k], ps[j][k]));
      |                                                 ^
In file included from /usr/include/c++/10/algorithm:62,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:65,
                 from histogram.cpp:1:
/usr/include/c++/10/bits/stl_algo.h:3474:5: note: candidate: 'template<class _Tp, class _Compare> constexpr _Tp std::min(std::initializer_list<_Tp>, _Compare)'
 3474 |     min(initializer_list<_Tp> __l, _Compare __comp)
      |     ^~~
/usr/include/c++/10/bits/stl_algo.h:3474:5: note:   template argument deduction/substitution failed:
histogram.cpp:120:49: note:   mismatched types 'std::initializer_list<_Tp>' and 'int'
  120 |             mn = min(mn, min(ps[i][k], ps[j][k]));
      |                                                 ^
histogram.cpp:140:40: error: no matching function for call to 'min(int&, ll&)'
  140 |                 mn1 = min(mn1, ps[j][k]);
      |                                        ^
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 histogram.cpp:1:
/usr/include/c++/10/bits/stl_algobase.h:230:5: note: candidate: 'template<class _Tp> constexpr const _Tp& std::min(const _Tp&, const _Tp&)'
  230 |     min(const _Tp& __a, const _Tp& __b)
      |     ^~~
/usr/include/c++/10/bits/stl_algobase.h:230:5: note:   template argument deduction/substitution failed:
histogram.cpp:140:40: note:   deduced conflicting types for parameter 'const _Tp' ('int' and 'll' {aka 'long long int'})
  140 |                 mn1 = min(mn1, ps[j][k]);
      |                                        ^
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 histogram.cpp:1:
/usr/include/c++/10/bits/stl_algobase.h:278:5: note: candidate: 'template<class _Tp, class _Compare> constexpr const _Tp& std::min(const _Tp&, const _Tp&, _Compare)'
  278 |     min(const _Tp& __a, const _Tp& __b, _Compare __comp)
      |     ^~~
/usr/include/c++/10/bits/stl_algobase.h:278:5: note:   template argument deduction/substitution failed:
histogram.cpp:140:40: note:   deduced conflicting types for parameter 'const _Tp' ('int' and 'll' {aka 'long long int'})
  140 |                 mn1 = min(mn1, ps[j][k]);
      |                                        ^
In file included from /usr/include/c++/10/algorithm:62,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:65,
                 from histogram.cpp:1:
/usr/include/c++/10/bits/stl_algo.h:3468:5: note: candidate: 'template<class _Tp> constexpr _Tp std::min(std::initializer_list<_Tp>)'
 3468 |     min(initializer_list<_Tp> __l)
      |     ^~~
/usr/include/c++/10/bits/stl_algo.h:3468:5: note:   template argument deduction/substitution failed:
histogram.cpp:140:40: note:   mismatched types 'std::initializer_list<_Tp>' and 'int'
  140 |                 mn1 = min(mn1, ps[j][k]);
      |                                        ^
In file included from /usr/include/c++/10/algorithm:62,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:65,
                 from histogram.cpp:1:
/usr/include/c++/10/bits/stl_algo.h:3474:5: note: candidate: 'template<class _Tp, class _Compare> constexpr _Tp std::min(std::initializer_list<_Tp>, _Compare)'
 3474 |     min(initializer_list<_Tp> __l, _Compare __comp)
      |     ^~~
/usr/include/c++/10/bits/stl_algo.h:3474:5: note:   template argument deduction/substitution failed:
histogram.cpp:140:40: note:   mismatched types 'std::initializer_list<_Tp>' and 'int'
  140 |                 mn1 = min(mn1, ps[j][k]);
      |                                        ^
histogram.cpp:142:40: error: no matching function for call to 'min(int&, ll&)'
  142 |                 mn1 = min(mn1, ps[i][k]);
      |                                        ^
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 histogram.cpp:1:
/usr/include/c++/10/bits/stl_algobase.h:230:5: note: candidate: 'template<class _Tp> constexpr const _Tp& std::min(const _Tp&, const _Tp&)'
  230 |     min(const _Tp& __a, const _Tp& __b)
      |     ^~~
/usr/include/c++/10/bits/stl_algobase.h:230:5: note:   template argument deduction/substitution failed:
histogram.cpp:142:40: note:   deduced conflicting types for parameter 'const _Tp' ('int' and 'll' {aka 'long long int'})
  142 |                 mn1 = min(mn1, ps[i][k]);
      |                                        ^
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 histogram.cpp:1:
/usr/include/c++/10/bits/stl_algobase.h:278:5: note: candidate: 'template<class _Tp, class _Compare> constexpr const _Tp& std::min(const _Tp&, const _Tp&, _Compare)'
  278 |     min(const _Tp& __a, const _Tp& __b, _Compare __comp)
      |     ^~~
/usr/include/c++/10/bits/stl_algobase.h:278:5: note:   template argument deduction/substitution failed:
histogram.cpp:142:40: note:   deduced conflicting types for parameter 'const _Tp' ('int' and 'll' {aka 'long long int'})
  142 |                 mn1 = min(mn1, ps[i][k]);
      |                                        ^
In file included from /usr/include/c++/10/algorithm:62,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:65,
                 from histogram.cpp:1:
/usr/include/c++/10/bits/stl_algo.h:3468:5: note: candidate: 'template<class _Tp> constexpr _Tp std::min(std::initializer_list<_Tp>)'
 3468 |     min(initializer_list<_Tp> __l)
      |     ^~~
/usr/include/c++/10/bits/stl_algo.h:3468:5: note:   template argument deduction/substitution failed:
histogram.cpp:142:40: note:   mismatched types 'std::initializer_list<_Tp>' and 'int'
  142 |                 mn1 = min(mn1, ps[i][k]);
      |                                        ^
In file included from /usr/include/c++/10/algorithm:62,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:65,
                 from histogram.cpp:1:
/usr/include/c++/10/bits/stl_algo.h:3474:5: note: candidate: 'template<class _Tp, class _Compare> constexpr _Tp std::min(std::initializer_list<_Tp>, _Compare)'
 3474 |     min(initializer_list<_Tp> __l, _Compare __comp)
      |     ^~~
/usr/include/c++/10/bits/stl_algo.h:3474:5: note:   template argument deduction/substitution failed:
histogram.cpp:142:40: note:   mismatched types 'std::initializer_list<_Tp>' and 'int'
  142 |                 mn1 = min(mn1, ps[i][k]);
      |                                        ^