Submission #70489612
Source Code Expand
#include <bits/stdc++.h>
#ifdef LOCAL
#include <debug.hpp>
#else
#define debug(...) void(0)
#endif
template <class T, class U = T> bool chmin(T& x, U&& y) { return y < x and (x = std::forward<U>(y), true); }
template <class T, class U = T> bool chmax(T& x, U&& y) { return x < y and (x = std::forward<U>(y), true); }
template <class T> void mkuni(std::vector<T>& v) {
std::ranges::sort(v);
auto result = std::ranges::unique(v);
v.erase(result.begin(), result.end());
}
template <class T> int lwb(const std::vector<T>& v, const T& x) {
return std::distance(v.begin(), std::ranges::lower_bound(v, x));
}
struct RandomNumberGenerator {
std::mt19937 mt;
RandomNumberGenerator() : mt(std::chrono::steady_clock::now().time_since_epoch().count()) {}
uint32_t operator()(uint32_t a, uint32_t b) {
std::uniform_int_distribution<uint32_t> dist(a, b - 1);
return dist(mt);
}
uint32_t operator()(uint32_t b) { return (*this)(0, b); }
template <typename T> void shuffle(std::vector<T>& v) {
for (int i = 0; i < int(v.size()); i++) std::swap(v[i], v[(*this)(0, i + 1)]);
}
};
struct RandomNumberGenerator64 {
std::mt19937_64 mt;
RandomNumberGenerator64() : mt(std::chrono::steady_clock::now().time_since_epoch().count()) {}
uint64_t operator()(uint64_t a, uint64_t b) {
std::uniform_int_distribution<uint64_t> dist(a, b - 1);
return dist(mt);
}
uint64_t operator()(uint64_t b) { return (*this)(0, b); }
template <typename T> void shuffle(std::vector<T>& v) {
for (int i = 0; i < int(v.size()); i++) std::swap(v[i], v[(*this)(0, i + 1)]);
}
};
using namespace std;
using ll = long long;
constexpr int MAX_ITR = 500;
void solve() {
int N;
cin >> N;
vector<ll> x(N), y(N);
for (int i = 0; i < N; i++) {
cin >> x[i] >> y[i];
}
RandomNumberGenerator rng;
for (int _ = 0; _ < MAX_ITR; _++) {
int p = rng(N), q = (p + rng(1, N)) % N;
ll a = y[q] - y[p], b = x[p] - x[q], c = x[q] * y[p] - x[p] * y[q];
int cnt = 0;
for (int i = 0; i < N; i++) {
cnt += (a * x[i] + b * y[i] + c == 0);
}
if (cnt > N / 2) {
cout << "Yes\n";
cout << a << " " << b << " " << c << "\n";
return;
}
}
cout << "No\n";
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
cout << fixed << setprecision(15);
solve();
return 0;
}
Submission Info
| Submission Time | |
|---|---|
| Task | E - Colinear |
| User | rniya |
| Language | C++ 23 (gcc 12.2) |
| Score | 450 |
| Code Size | 2595 Byte |
| Status | AC |
| Exec Time | 308 ms |
| Memory | 11096 KiB |
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 450 / 450 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt |
| All | 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt, 01_random_00.txt, 01_random_01.txt, 01_random_02.txt, 01_random_03.txt, 01_random_04.txt, 01_random_05.txt, 01_random_06.txt, 01_random_07.txt, 02_corner_1_00.txt, 02_corner_1_01.txt, 02_corner_1_02.txt, 02_corner_1_03.txt, 02_corner_1_04.txt, 02_corner_1_05.txt, 03_corner_2_00.txt, 03_corner_2_01.txt, 03_corner_2_02.txt, 03_corner_2_03.txt, 04_corner_3_00.txt, 04_corner_3_01.txt, 04_corner_3_02.txt, 04_corner_3_03.txt, 04_corner_3_04.txt, 04_corner_3_05.txt, 04_corner_3_06.txt, 04_corner_3_07.txt, 04_corner_3_08.txt, 04_corner_3_09.txt, 05_corner_4_00.txt, 05_corner_4_01.txt, 06_corner_5_00.txt, 06_corner_5_01.txt, 07_corner_6_00.txt, 07_corner_6_01.txt, 07_corner_6_02.txt, 07_corner_6_03.txt, 07_corner_6_04.txt, 07_corner_6_05.txt, 07_corner_6_06.txt, 07_corner_6_07.txt, 07_corner_6_08.txt, 07_corner_6_09.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 00_sample_00.txt | AC | 1 ms | 3472 KiB |
| 00_sample_01.txt | AC | 1 ms | 3628 KiB |
| 00_sample_02.txt | AC | 1 ms | 3504 KiB |
| 01_random_00.txt | AC | 48 ms | 9144 KiB |
| 01_random_01.txt | AC | 306 ms | 10968 KiB |
| 01_random_02.txt | AC | 59 ms | 10916 KiB |
| 01_random_03.txt | AC | 306 ms | 10964 KiB |
| 01_random_04.txt | AC | 58 ms | 10952 KiB |
| 01_random_05.txt | AC | 307 ms | 10940 KiB |
| 01_random_06.txt | AC | 308 ms | 10968 KiB |
| 01_random_07.txt | AC | 308 ms | 10972 KiB |
| 02_corner_1_00.txt | AC | 60 ms | 10972 KiB |
| 02_corner_1_01.txt | AC | 65 ms | 10960 KiB |
| 02_corner_1_02.txt | AC | 60 ms | 11004 KiB |
| 02_corner_1_03.txt | AC | 56 ms | 10976 KiB |
| 02_corner_1_04.txt | AC | 63 ms | 10984 KiB |
| 02_corner_1_05.txt | AC | 60 ms | 10964 KiB |
| 03_corner_2_00.txt | AC | 60 ms | 11000 KiB |
| 03_corner_2_01.txt | AC | 55 ms | 11036 KiB |
| 03_corner_2_02.txt | AC | 62 ms | 10864 KiB |
| 03_corner_2_03.txt | AC | 60 ms | 10868 KiB |
| 04_corner_3_00.txt | AC | 1 ms | 3560 KiB |
| 04_corner_3_01.txt | AC | 1 ms | 3492 KiB |
| 04_corner_3_02.txt | AC | 1 ms | 3504 KiB |
| 04_corner_3_03.txt | AC | 1 ms | 3504 KiB |
| 04_corner_3_04.txt | AC | 1 ms | 3576 KiB |
| 04_corner_3_05.txt | AC | 1 ms | 3576 KiB |
| 04_corner_3_06.txt | AC | 1 ms | 3496 KiB |
| 04_corner_3_07.txt | AC | 1 ms | 3628 KiB |
| 04_corner_3_08.txt | AC | 1 ms | 3500 KiB |
| 04_corner_3_09.txt | AC | 1 ms | 3468 KiB |
| 05_corner_4_00.txt | AC | 60 ms | 10964 KiB |
| 05_corner_4_01.txt | AC | 58 ms | 11096 KiB |
| 06_corner_5_00.txt | AC | 2 ms | 3524 KiB |
| 06_corner_5_01.txt | AC | 1 ms | 3508 KiB |
| 07_corner_6_00.txt | AC | 61 ms | 11040 KiB |
| 07_corner_6_01.txt | AC | 59 ms | 10916 KiB |
| 07_corner_6_02.txt | AC | 57 ms | 10868 KiB |
| 07_corner_6_03.txt | AC | 60 ms | 11028 KiB |
| 07_corner_6_04.txt | AC | 59 ms | 10956 KiB |
| 07_corner_6_05.txt | AC | 59 ms | 11024 KiB |
| 07_corner_6_06.txt | AC | 60 ms | 11040 KiB |
| 07_corner_6_07.txt | AC | 61 ms | 10924 KiB |
| 07_corner_6_08.txt | AC | 62 ms | 10968 KiB |
| 07_corner_6_09.txt | AC | 57 ms | 10920 KiB |