Submission #1560783
Source Code Expand
#include <bits/stdc++.h> using namespace std; typedef long long LL; #define MOD 998244353 LL powmod(LL a, LL n){ if(n == 0) return 1; if(n % 2) return (a * powmod(a, n-1)) % MOD; LL c = powmod(a, n/2); return (c*c) % MOD; } struct UF{ int n; vector<int> par; UF(int n) : n(n) { for(int i = 0; i < n; i++) par.push_back(i); } int find(int a){ if(a != par[a]) par[a] = find(par[a]); return par[a]; } void join(int a, int b){ par[find(a)] = find(b); } }; int main(){ LL n = 0; cin >> n; pair<LL,LL> d[n]; for(LL i = 0; i < n; i++){ cin >> d[i].first >> d[i].second; } LL ans = powmod(2, n); //ans -= 1; //ans -= n; for(LL i = 0; i < n; i++){ map<pair<LL,LL>, LL> f; for(LL j = i+1; j < n; j++){ LL a1 = d[i].first - d[j].first; LL a2 = d[i].second - d[j].second; LL gc = __gcd(a1,a2); a1 /= gc; a2 /=gc; if(a1 < 0 || (a1 == 0 && a2 < 0)){ a1 = -a1; a2 = -a2; } f[make_pair(a1,a2)] ++; } for(auto it = f.begin(); it != f.end(); it++){ LL t = it->second; ans -= powmod(2,t); ans++; } } ans -= n; ans -= 1; ans %= MOD; while(ans < 0) ans += MOD; cout << ans << endl; }
Submission Info
Submission Time | |
---|---|
Task | E - ConvexScore |
User | ksun48 |
Language | C++14 (GCC 5.4.1) |
Score | 700 |
Code Size | 1214 Byte |
Status | AC |
Exec Time | 6 ms |
Memory | 384 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 | 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 | 3 ms | 256 KB |
1_006.txt | AC | 1 ms | 256 KB |
1_007.txt | AC | 3 ms | 256 KB |
1_008.txt | AC | 3 ms | 256 KB |
1_009.txt | AC | 3 ms | 256 KB |
1_010.txt | AC | 2 ms | 256 KB |
1_011.txt | AC | 3 ms | 256 KB |
1_012.txt | AC | 3 ms | 256 KB |
1_013.txt | AC | 2 ms | 256 KB |
1_014.txt | AC | 1 ms | 256 KB |
1_015.txt | AC | 2 ms | 256 KB |
1_016.txt | AC | 1 ms | 256 KB |
1_017.txt | AC | 6 ms | 256 KB |
1_018.txt | AC | 6 ms | 256 KB |
1_019.txt | AC | 4 ms | 256 KB |
1_020.txt | AC | 4 ms | 256 KB |
1_021.txt | AC | 5 ms | 256 KB |
1_022.txt | AC | 5 ms | 256 KB |
1_023.txt | AC | 5 ms | 256 KB |
1_024.txt | AC | 4 ms | 256 KB |
1_025.txt | AC | 4 ms | 256 KB |
1_026.txt | AC | 4 ms | 256 KB |
1_027.txt | AC | 2 ms | 256 KB |
1_028.txt | AC | 2 ms | 256 KB |
1_029.txt | AC | 5 ms | 256 KB |
1_030.txt | AC | 6 ms | 256 KB |
1_031.txt | AC | 6 ms | 256 KB |
1_032.txt | AC | 6 ms | 256 KB |
1_033.txt | AC | 6 ms | 384 KB |
1_034.txt | AC | 5 ms | 256 KB |
1_035.txt | AC | 4 ms | 256 KB |