Submission #572085

#TimeUsernameProblemLanguageResultExecution timeMemory
572085piOOETriangles (CEOI18_tri)C++17
35 / 100
27 ms340 KiB
#include <bits/stdc++.h>
#include "trilib.h"

using namespace std;

#define sz(x) ((int)size(x))
#define all(x) begin(x), end(x)
#define trace(x) cout << #x << ": " << (x) << endl;

typedef long long ll;

mt19937 rnd(chrono::steady_clock::now().time_since_epoch().count());

int rand(int l, int r) { return (int) ((ll) rnd() % (r - l + 1)) + l; }

const int N = 40000;
const ll infL = 3e18;

int n;

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    n = get_n();
    multiset<int> st;
    int lst = -1;
    for (int s = 0; s < n; ++s) {
        //pseudo Jarvis algorithm
        int p0 = s, pi = s;
        int k = 0;
        vector<bool> used(n);
        vector<int> p(n, -1);
        do {
            used[p0] = true;
            pi = -1;
            for (int i = 0; i < n; ++i) {
                if (p0 != i && (pi == -1 || is_clockwise(p0 + 1, pi + 1, i + 1))) {
                    pi = i;
                }
            }
            p[pi] = p0;
            p0 = pi;
        } while (!used[pi]);
        do {
            ++k;
            pi = p[pi];
        } while (pi != p0);
        if (lst != -1 && k != lst) {
            while (true) {
                
            }
        }
        lst = k;
    }
    give_answer(lst);
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...