結果
| 問題 |
No.1041 直線大学
|
| コンテスト | |
| ユーザー |
aaa
|
| 提出日時 | 2020-06-05 17:20:30 |
| 言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 2,202 bytes |
| コンパイル時間 | 931 ms |
| コンパイル使用メモリ | 103,384 KB |
| 実行使用メモリ | 6,820 KB |
| 最終ジャッジ日時 | 2024-12-16 03:18:13 |
| 合計ジャッジ時間 | 2,255 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 23 WA * 14 |
ソースコード
//
#include <stdio.h>
#include <string.h>
#include <algorithm>
#include <iostream>
#include <string>
#include <vector>
#include <functional>
#include <map>
#include <iomanip>
#include <math.h>
#include <stack>
#include <queue>
#include <bitset>
#include <cstdlib>
#include <tuple>
#include <cctype>
#include <ctype.h>
#include <set>
#include <sstream>
#include <time.h>
#include <numeric>
using namespace std;
//#define int long long
#define rep(i,s,n) for(int i = s;i<n;i++)
#define repe(i,s,n) for(int i = s;i<=n;i++)
#define rrep(i,s,n) for(int i = (n)-1;i>=(s);i--)
#define all(v) (v).begin(),(v).end()
#define pb push_back
#define fi first
#define se second
#define chmin(a,b) a=min((a),(b))
#define chmax(a,b) a=max((a),(b))
#define l1 list[index]
#define l2 list[index - 1]
#define l3 list[index + 1]
#define iif(i,j) ((i<0 && j<0) || (i>0 && j>0)) ? true : false
typedef long long ll;
typedef pair<int, int>pint;
typedef vector<int>vint;
typedef vector<pint>vpint;
typedef pair<pint, int> P1;
typedef pair<int, pint> P2;
typedef pair<pint, pint> PP;
static const ll maxLL = (ll)1 << 62;
const ll MOD = 1000000007;
const ll INF = 1e18;
const double PI = 3.14159265359;
int ca[12] = { 31,28,31,30,31,30,31,31,30,31,30,31 };
signed main() {
int N, cnt = 0;
//vpint list;
vector<pair<double, double>>list;
cin >> N;
rep(i, 0, N) {
int n1, n2;
cin >> n1 >> n2;
list.pb(make_pair(n1,n2));
}
sort(list.begin(), list.end());
int maxn = 0;
rep(i, 0, N) {
cnt = 0;
rep(k, 0, N) {
if (i == k)continue;
double num = abs((list[i].first - list[k].first) / (list[i].se - list[k].se));
//cout << "num->" << num << endl;
cnt = 0;
rep(j, 0, N) {
if (j == k || i == j)continue;
//cout << "i->" << list[i].first << " j->" << list[j].first << " k->" << list[k].first;
//cout << " i2->" << list[i].second << " j2->" << list[j].second << " k2->" << list[k].second;
//cout << " " << abs((list[i].first - list[j].first) / (list[i].second - list[j].second)) << endl;
if ( abs( (list[i].first - list[j].first) / ( list[i].second - list[j].second)) == num) {
cnt++;
}
}
maxn = max(maxn, cnt);
}
}
cout << 2 + maxn << endl;
return 0;
}
aaa