제출 #121206

#제출 시각아이디문제언어결과실행 시간메모리
121206RockyBTriangles (CEOI18_tri)C++17
0 / 100
6 ms384 KiB
/// In The Name Of God #include <bits/stdc++.h> #include "trilib.h" #define f first #define s second #define pb push_back #define pp pop_back #define mp make_pair #define sz(x) (int)x.size() #define sqr(x) ((x) * 1ll * (x)) #define all(x) x.begin(), x.end() #define rep(i, l, r) for (int i = (l); i <= (r); i++) #define per(i, l, r) for (int i = (l); i >= (r); i--) #define Kazakhstan ios_base :: sync_with_stdio(0), cin.tie(0), cout.tie(0); #define nl '\n' #define ioi exit(0); typedef long long ll; typedef long double ld; typedef unsigned long long ull; const int N = (int)5e5 + 7; const int inf = (int)1e9 + 7; const int mod = (int)1e9 + 7; const ll linf = (ll)1e18 + 7; const int dx[] = {-1, 0, 1, 0, 1, -1, -1, 1}; const int dy[] = {0, 1, 0, -1, 1, -1, 1, -1}; using namespace std; int n; set <int> ans; bool check(int i, int j) { set <int> st; for (int k = 1; k <= n; k++) { if (k == i || k == j) continue; st.insert(is_clockwise(i, j, k)); if (sz(st) > 1) return 0; } return 1; } void solve(vector <int> a) { if (!sz(a)) return; if (sz(a) == 1) { ans.insert(a[0]); return; } if (sz(a) <= 10) { rep(i, 0, sz(a) - 1) { rep(j, i + 1, sz(a) - 1) { set <int> st; rep(k, 0, sz(a) - 1) { if (i == k || j == k) continue; st.insert(is_clockwise(a[i], a[j], a[k])); } if (sz(st) == 1) ans.insert(a[i]), ans.insert(a[j]); } } return; } vector <int> ok[2]; int v1 = a[0], v2 = a[1]; rep(i, 2, sz(a) - 1) { ok[is_clockwise(v1, v2, a[i])].pb(a[i]); } if (!sz(ok[0]) || !sz(ok[1])) { ans.insert(v1); ans.insert(v2); solve(ok[0]); solve(ok[1]); } else { ok[0].pb(v1), ok[0].pb(v2); ok[1].pb(v1), ok[1].pb(v2); solve(ok[0]); solve(ok[1]); } } int main() { #ifdef IOI2018 freopen ("in.txt", "r", stdin); #endif n = get_n(); vector <int> a; rep(i, 1, n) a.pb(i); solve(a); give_answer(sz(ans)); ioi }
#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...