結果
問題 | No.1041 直線大学 |
ユーザー | ashipan |
提出日時 | 2020-05-01 22:12:55 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 4 ms / 2,000 ms |
コード長 | 873 bytes |
コンパイル時間 | 828 ms |
コンパイル使用メモリ | 80,264 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-11-16 07:55:21 |
合計ジャッジ時間 | 1,949 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 37 |
ソースコード
#include <algorithm> #include <cmath> #include <iostream> #include <queue> #include <vector> #define rep(i, a, n) for(int i = a; i < n; i++) using namespace std; using ll = long long; using P = pair<int, int>; int main() { int n; cin >> n; vector<pair<double, double>> x(n); int ans = 2; rep(i, 0, n) cin >> x[i].first >> x[i].second; rep(i, 0, n-1) rep(j, i+1, n){ double a, b; int count = 0; a = (x[i].second - x[j].second)/(x[i].first - x[j].first); b = (x[i].first*x[j].second - x[i].second*x[j].first)/(x[i].first - x[j].first); rep(k, 0, n){ if(x[i].first == x[j].first){ if(x[k].first == x[i].first) count++; } else if(x[k].second == a*x[k].first + b) count++; } ans = max(ans, count); } cout << ans << endl; return 0; }