Submission #1710393
Source Code Expand
///////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////
// _oo0oo_ //
// o8888888o //
// 88" . "88 ------ hzt1 //
// (| -_- |) //
// 0\ = /0 //
// ___/`---'\___ //
// .' \| |// '. //
// / \||| : |||// \ //
// / _||||| -:- |||||- \ //
// | | \ - /// | | //
// | \_| ''\---/'' |_/ | //
// \ .-\__ '-' ___/-. / //
// ___'. .' /--.--\ `. .'___ //
// ."" '< `.___\_<|>_/___.' >' "". //
// | | : `- \`.;`\ _ /`;.`/ - ` : | | //
// \ \ `_. \_ __\ /__ _/ .-` / / //
// =====`-.____`.___ \_____/___.-`___.-'===== //
// `=---=' //
// //
// //
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ //
// //
// God-He Bless All. //
// This Code Will Never Explode. //
// //
// //
///////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////
#include<cstdio>
#include<cstring>
#include<cctype>
#include<algorithm>
#include<vector>
#define pb push_back
#define mp make_pair
#define xx first
#define yy second
#define rep(i,a,b) for(int i=(a),i##_end_=(b);i<=i##_end_;i++)
#define dwn(i,a,b) for(int i=(a),i##_end_=(b);i>=i##_end_;i--)
using namespace std;
const int Size=1<<16;
char buffer[Size],*head,*tail;
inline char Getchar() {
if(head==tail) {
int l=fread(buffer,1,Size,stdin);
tail=(head=buffer)+l;
}
if(head==tail) return -1;
return *head++;
}
inline int read() {
int x=0,f=1;char c=Getchar();
for(;!isdigit(c);c=Getchar()) if(c=='-') f=-1;
for(;isdigit(c);c=Getchar()) x=x*10+c-'0';
return x*f;
}
typedef long long ll;
const int maxn=210;
const int mod=998244353;
int n,x[maxn],y[maxn],pw[maxn];
int check(int i,int j,int k) {
return (x[k]-x[i])*(y[i]-y[j])==(y[k]-y[i])*(x[i]-x[j]);
}
int main() {
n=read();
rep(i,1,n) x[i]=read(),y[i]=read();
pw[0]=1;
rep(i,1,n) pw[i]=pw[i-1]*2%mod;
int ans=pw[n];
(ans+=mod-(n+1))%=mod;
rep(i,1,n) rep(j,i+1,n) {
int x=i,y=j,cnt=0;
rep(k,1,n) if(check(i,j,k)) {
cnt++;x=min(x,k);
y=max(y,k);
}
if(x==i&&y==j) {
(ans+=mod-pw[cnt])%=mod;
(ans+=(cnt+1))%=mod;
}
}
printf("%d\n",ans);
return 0;
}
Submission Info
Submission Time |
|
Task |
E - ConvexScore |
User |
wzj52501 |
Language |
C++14 (GCC 5.4.1) |
Score |
700 |
Code Size |
3163 Byte |
Status |
AC |
Exec Time |
8 ms |
Memory |
128 KB |
Judge Result
Set Name |
Sample |
All |
Score / Max Score |
0 / 0 |
700 / 700 |
Status |
|
|
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 |
128 KB |
0_001.txt |
AC |
1 ms |
128 KB |
0_002.txt |
AC |
1 ms |
128 KB |
1_003.txt |
AC |
1 ms |
128 KB |
1_004.txt |
AC |
1 ms |
128 KB |
1_005.txt |
AC |
2 ms |
128 KB |
1_006.txt |
AC |
1 ms |
128 KB |
1_007.txt |
AC |
3 ms |
128 KB |
1_008.txt |
AC |
2 ms |
128 KB |
1_009.txt |
AC |
3 ms |
128 KB |
1_010.txt |
AC |
1 ms |
128 KB |
1_011.txt |
AC |
3 ms |
128 KB |
1_012.txt |
AC |
3 ms |
128 KB |
1_013.txt |
AC |
2 ms |
128 KB |
1_014.txt |
AC |
1 ms |
128 KB |
1_015.txt |
AC |
5 ms |
128 KB |
1_016.txt |
AC |
2 ms |
128 KB |
1_017.txt |
AC |
6 ms |
128 KB |
1_018.txt |
AC |
6 ms |
128 KB |
1_019.txt |
AC |
6 ms |
128 KB |
1_020.txt |
AC |
6 ms |
128 KB |
1_021.txt |
AC |
6 ms |
128 KB |
1_022.txt |
AC |
6 ms |
128 KB |
1_023.txt |
AC |
6 ms |
128 KB |
1_024.txt |
AC |
6 ms |
128 KB |
1_025.txt |
AC |
6 ms |
128 KB |
1_026.txt |
AC |
6 ms |
128 KB |
1_027.txt |
AC |
8 ms |
128 KB |
1_028.txt |
AC |
8 ms |
128 KB |
1_029.txt |
AC |
6 ms |
128 KB |
1_030.txt |
AC |
6 ms |
128 KB |
1_031.txt |
AC |
6 ms |
128 KB |
1_032.txt |
AC |
6 ms |
128 KB |
1_033.txt |
AC |
6 ms |
128 KB |
1_034.txt |
AC |
6 ms |
128 KB |
1_035.txt |
AC |
6 ms |
128 KB |