This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
/// 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[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 time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |