Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- weak weak we ak we akwea weak we
- weak weak we ak weak weak we ak we
- weakweak we ak wea ak we akwe
- wea we ak we ak we akwe
- wea we ak we ak we akwe
- wea eak weak we ak we ak we
- wea wea ak we ak weak we
- we
- we ak wea ak weak we
- we ak wea weak wea eak we
- we ak we ak wea wea we we
- weak we ak we we we we
- we we ak we we we we
- we wea weak wea wea weak weak
- weak wea akw weak weak
- */
- //#define _GLIBCXX_DEBUG //is only used when couldn't find bug
- using namespace std;
- #pragma GCC optimize ("Ofast")
- //headers
- #include <vector>
- #include <queue>
- #include <algorithm>
- #include <cmath>
- #include <utility>
- #include <bitset>
- #include <set>
- #include <string>
- #include <stack>
- #include <iomanip>
- #include <map>
- #include <memory.h>
- #include <deque>
- #include <time.h>
- #include <assert.h>
- #include <unordered_map>
- #include <unordered_set>
- #include <sstream>
- //defines
- typedef long long LL;
- typedef pair<int,int> pii;
- typedef pair<LL,LL> pll;
- typedef vector<int> vi;
- typedef vector<LL> vl;
- typedef vector<vector<int>> vvi;
- typedef vector<vector<LL>> vvl;
- #define pb push_back
- #define F first
- #define S second
- #define mid (LB+RB)/2
- #define mkp make_pair
- //iterators
- #define iter(x) x.begin(),x.end()
- #define aiter(a,n) a,a+n
- //loops
- #define REP(n) for (int ___=n > 0 ? n : 0;___--;)
- #define REP0(i,n) for (int i=0,___=n;i<___;++i)
- #define REP1(i,n) for (int i=1,___=n;i<=___;++i)
- #define MEM(e,val) memset (e,val,sizeof(e))
- /*
- When he said Super Idol??摰寥瘝∩????急?甇????瘝∩???潛??105 簞C??皛湔輕皜滲?擐偌雿??乩????舐頝?隡蝚???韏瑚?隞?賭?頧餉?憭梯揖撖寞╪?喟??抒?銝?港??暹敺?敹?敶?撖寞?霂港?????曄?霈拇??亙??Z蕭?芸楛?╪?喲???芋??
- I really felt that.
- every one is so dian except me
- still too weak ?拙?
- */
- //IO
- #include <cstdio>
- #include <iostream>
- #include <fstream>
- #define want_to_be_more_dian ios_base::sync_with_stdio(false),cin.tie(0);
- //pbds
- /*
- #include <ext/pb_ds/tree_policy.hpp>
- #include <ext/pb_ds/assoc_container.hpp>
- #include <ext/pb_ds/priority_queue.hpp>
- using namespace __gnu_pbds;
- //tree <pii,null_type,less<pii>,rb_tree_tag,tree_order_statistics_node_update>;
- */
- //constants
- #include <climits>
- const int maxn = 2.4e4+20,mod = 0;
- const long long inf = 0;
- const double eps = 0;
- //workspace
- pii p[maxn];
- inline void solve(){
- int n;
- cin >> n;
- REP0(i, n) cin >> p[i].F >> p[i].S;
- LL ans = 0;
- REP0(i, n){
- map <pii, int> mp;
- REP0(j, n) if (i != j){
- pii dif = mkp(p[j].F - p[i].F, p[j].S - p[i].S);
- if (dif.F < 0 or (!dif.F and dif.S < 0)){
- dif.F = -dif.F;
- dif.S = -dif.S;
- }
- int g = __gcd(dif.F, (int)abs(dif.S));
- dif.F /= g;
- dif.S /= g;
- ++mp[dif];
- }
- for (auto &[___, c]:mp) ans += c * (n - c - 1);
- }
- cout << ans / 6;
- }
- signed main(){
- want_to_be_more_dian
- //int t,i=1; for (int ;cin;)//use in multi-testcases and end in EOF problems
- //int t,i=1; for (cin >> t;i<=t;++i)//use in multi-testcases problems
- //cout << "Case #" << i << ": ",//use in Google, FB competitions
- solve();//always used
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement