제출 #1321124

#제출 시각아이디문제언어결과실행 시간메모리
1321124LudisseyTriangles (CEOI18_tri)C++20
20 / 100
0 ms332 KiB
#include <bits/stdc++.h> #include "trilib.h" #define int long long #define sz(a) (int)a.size() #define all(a) a.begin(), a.end() #define rall(a) a.rbegin(), a.rend() using namespace std; signed main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); int n=get_n(); int x1=0, x2=1; int x0=-1; bool cl=false; for (int i = 2; i < n; i++) { if(is_clockwise(x1+1,x2+1,i+1)==cl&&(x0==-1||is_clockwise(x0+1,x1+1,i+1)!=cl)){ x0=x1; x1=x2; x2=i; cl=!cl; } } int root=x2; vector<int> a; for (int i = 0; i < n; i++) { if(i==root) continue; a.push_back(i+1); } sort(all(a), [root](int _a, int _b){ return is_clockwise(root+1,_a,_b); }); vector<int> conv; conv.push_back(root+1); conv.push_back(a[0]); for (int i = 1; i < sz(a); i++) { while(true){ x2=conv.back(); conv.pop_back(); x1=conv.back(); if(is_clockwise(x1,x2,a[i])){ conv.push_back(x2); break; } } conv.push_back(a[i]); } give_answer(sz(conv)); 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...