Submission #1559881


Source Code Expand

#include <bits/stdc++.h>

typedef long long ll;
typedef long long llong;
typedef long double ld;
typedef unsigned long long ull;

using namespace std;

const ll MOD = 998244353;
ll pw(ll a, ll b) {
	ll ans = 1; while (b) {
		while (!(b & 1)) b >>= 1, a = (a * a) % MOD;
		ans = (ans * a) % MOD, --b;
	} return ans;
}

struct point {
	ll x, y;
	point operator-(point a) {
		return {x - a.x, y - a.y};
	}
	ll operator*(point a) {
		return x * a.y - y * a.x;
	}
	bool operator<(point a) {
		return make_pair(x, y) < make_pair(a.x, a.y);
	}
};

int n;
point a[300];


int main() {
	cin >> n;
	for (int i = 0; i < n; ++i)
		cin >> a[i].x >> a[i].y;
	ll ans = 1;
	for (int i = 0; i < n; ++i)
		ans = ans * 2 % MOD;
	ans = (ans - 1 + MOD) % MOD;
	ans = (ans - n + MOD) % MOD;
	for (int i = 0; i < n; ++i)
		for (int j = 0; j < n; ++j) {
			if (!(a[i] < a[j]))
				continue;
			int cc = 0;
			for (int k = 0; k < n; ++k)
				if (a[i] < a[k] && a[k] < a[j] && (a[k] - a[i]) * (a[j] - a[i]) == 0)
					++cc;
			ll mn = pw(2, cc);
			ans = (ans - mn + MOD) % MOD;
		}
	cout << ans << "\n";
	return 0;
}


Submission Info

Submission Time
Task E - ConvexScore
User LHiC
Language C++14 (GCC 5.4.1)
Score 700
Code Size 1153 Byte
Status AC
Exec Time 22 ms
Memory 256 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 700 / 700
Status
AC × 3
AC × 36
Set Name Test Cases
Sample 0_000.txt, 0_001.txt, 0_002.txt
All 0_000.txt, 0_001.txt, 0_002.txt, 1_003.txt, 1_004.txt, 1_005.txt, 1_006.txt, 1_007.txt, 1_008.txt, 1_009.txt, 1_010.txt, 1_011.txt, 1_012.txt, 1_013.txt, 1_014.txt, 1_015.txt, 1_016.txt, 1_017.txt, 1_018.txt, 1_019.txt, 1_020.txt, 1_021.txt, 1_022.txt, 1_023.txt, 1_024.txt, 1_025.txt, 1_026.txt, 1_027.txt, 1_028.txt, 1_029.txt, 1_030.txt, 1_031.txt, 1_032.txt, 1_033.txt, 1_034.txt, 1_035.txt
Case Name Status Exec Time Memory
0_000.txt AC 1 ms 256 KB
0_001.txt AC 1 ms 256 KB
0_002.txt AC 1 ms 256 KB
1_003.txt AC 1 ms 256 KB
1_004.txt AC 1 ms 256 KB
1_005.txt AC 6 ms 256 KB
1_006.txt AC 1 ms 256 KB
1_007.txt AC 11 ms 256 KB
1_008.txt AC 7 ms 256 KB
1_009.txt AC 9 ms 256 KB
1_010.txt AC 3 ms 256 KB
1_011.txt AC 9 ms 256 KB
1_012.txt AC 11 ms 256 KB
1_013.txt AC 6 ms 256 KB
1_014.txt AC 1 ms 256 KB
1_015.txt AC 8 ms 256 KB
1_016.txt AC 4 ms 256 KB
1_017.txt AC 20 ms 256 KB
1_018.txt AC 20 ms 256 KB
1_019.txt AC 21 ms 256 KB
1_020.txt AC 22 ms 256 KB
1_021.txt AC 22 ms 256 KB
1_022.txt AC 22 ms 256 KB
1_023.txt AC 21 ms 256 KB
1_024.txt AC 20 ms 256 KB
1_025.txt AC 19 ms 256 KB
1_026.txt AC 18 ms 256 KB
1_027.txt AC 13 ms 256 KB
1_028.txt AC 18 ms 256 KB
1_029.txt AC 20 ms 256 KB
1_030.txt AC 19 ms 256 KB
1_031.txt AC 20 ms 256 KB
1_032.txt AC 19 ms 256 KB
1_033.txt AC 19 ms 256 KB
1_034.txt AC 17 ms 256 KB
1_035.txt AC 14 ms 256 KB