結果
問題 |
No.1041 直線大学
|
ユーザー |
![]() |
提出日時 | 2020-05-02 04:44:17 |
言語 | D (dmd 2.109.1) |
結果 |
AC
|
実行時間 | 3 ms / 2,000 ms |
コード長 | 983 bytes |
コンパイル時間 | 1,898 ms |
コンパイル使用メモリ | 177,280 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-11-16 07:59:11 |
合計ジャッジ時間 | 2,934 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 37 |
ソースコード
import std; alias P = Tuple!(int, "x", int, "y"); int calc(P[] ps) { int ans = 0; foreach (i; 0..ps.length) { foreach (j; i+1..ps.length) { int cnt = 2; foreach (k; 0..ps.length) { if (k == i || k == j) continue; auto x1 = ps[k].x - ps[i].x; auto y1 = ps[k].y - ps[i].y; auto x2 = ps[j].x - ps[i].x; auto y2 = ps[j].y - ps[i].y; if (x1 * y2 == x2 * y1) cnt++; } ans = max(ans, cnt); } } return ans; } void main() { int n; scan(n); P[] ps; foreach (_; 0..n) { int x, y; scan(x, y); ps ~= P(x, y); } writeln(calc(ps)); } void scan(T...)(ref T a) { string[] ss = readln.split; foreach (i, t; T) a[i] = ss[i].to!t; } T read(T)() { return readln.chomp.to!T; } T[] reads(T)() { return readln.split.to!(T[]); } alias readint = read!int; alias readints = reads!int;