Submission #538339

#TimeUsernameProblemLanguageResultExecution timeMemory
538339alextodoranTriangles (CEOI18_tri)C++17
Compilation error
0 ms0 KiB
/** ____ ____ ____ ____ ____ ||a |||t |||o |||d |||o || ||__|||__|||__|||__|||__|| |/__\|/__\|/__\|/__\|/__\| **/ #include <bits/stdc++.h> #include "trilib.h" using namespace std; typedef long long ll; const int N_MAX = 40000; int get_n (); bool is_clockwise (int i, int j, int k); void give_answer (int s); void init(); int n; bool side[N_MAX + 2]; int p[N_MAX + 2]; bool cmp (const int &i, const int &j) { if (side[i] != side[j]) { return side[i] < side[j]; } else { return !is_clockwise(i, 1, j); } } int main () { init(); n = get_n(); for (int i = 3; i <= n; i++) { side[i] = !is_clockwise(1, 2, i); } iota(p + 1, p + n + 1, 1); sort(p + 3, p + n + 1, cmp); for (int i = 3; i <= n; i++) { side[i] = !is_clockwise(1, 2, p[i]); } for (int i = 2; i <= n; i++) { if (side[i] == 0 && (i == n || side[i + 1] == 1)) { rotate(p + 1, p + 2, p + i + 1); break; } } deque <int> st; for (int k = 1; k <= n; k++) { int i = p[k]; while ((int) st.size() >= 2 && !is_clockwise(st.end()[-2], st.end()[-1], i)) { st.pop_back(); } st.push_back(i); } while ((int) st.size() >= 3 && !is_clockwise(st.end()[-2], st.end()[-1], st[0])) { st.pop_back(); } while ((int) st.size() >= 3 && !is_clockwise(st.end()[-1], st[0], st[1])) { st.pop_front(); } give_answer((int) st.size()); return 0; }

Compilation message (stderr)

tri.cpp:19:6: error: ambiguating new declaration of 'bool is_clockwise(int, int, int)'
   19 | bool is_clockwise (int i, int j, int k);
      |      ^~~~~~~~~~~~
In file included from tri.cpp:10:
trilib.h:6:5: note: old declaration 'int is_clockwise(int, int, int)'
    6 | int is_clockwise(int a, int b, int c);
      |     ^~~~~~~~~~~~