282232026-05-18 09:34:24PappMatyasHáromszögekcpp17Hibás válasz 10/100107ms3944 KiB
#include <iostream>
#include <algorithm>
#include <vector>

using namespace std;
using ll = long long;

struct int2
{
	ll x;
	ll y;
};

int2 a;
int2 b;
vector<int2> points;
vector<pair<float, int>> aFunc;
vector<pair<float, int>> bFunc;
vector<int> sub;

static bool CompareA(pair<float, int> p, pair<float, int> q)
{
	return p.first < q.first;
}

static bool CompareB(pair<float, int> p, pair<float, int> q)
{
	return p.first > q.first;
}

int main()
{
	ll n;
	cin >> n;
	cin >> a.x >> a.y;
	cin >> b.x >> b.y;
	n -= 2;

	points.resize(n);
	aFunc.resize(n);
	bFunc.resize(n);
	sub.resize(n, 0);
	for (int i = 0; i < n; i++)
	{
		cin >> points[i].x >> points[i].y;

		if (points[i].y - a.y == 0) aFunc[i].first = 1000000000;
		else aFunc[i].first = (float)(points[i].x - a.x) / (points[i].y - a.y);
		if (points[i].y - b.y == 0) aFunc[i].first = 1000000000;
		else bFunc[i].first = (float)(points[i].x - b.x) / (points[i].y - b.y);

		aFunc[i].second = i;
		bFunc[i].second = i;
	}
	/*

	cout << endl;

	for (int i = 0; i < n; i++)
	{
	    cout << aFunc[i].first << " " << aFunc[i].second;
		cout << endl;
	}

	cout << endl;
	for (int i = 0; i < n; i++)
	{
		cout << bFunc[i].first << " " << bFunc[i].second;
		cout << endl;
	}
	*/
	sort(aFunc.begin(), aFunc.end(), CompareA);
	sort(bFunc.begin(), bFunc.end(), CompareB);

	/*
	cout << endl;
	for (int i = 0; i < n; i++)
	{
		cout << aFunc[i].first << " " << aFunc[i].second + 3;
		cout << endl;
	}

	cout << endl;
	for (int i = 0; i < n; i++)
	{
		cout << bFunc[i].first << " " << bFunc[i].second + 3;
		cout << endl;
	}
	*/
	int eqa = 0;
	int eqb = 0;
	for (int i = 0; i < n; i++)
	{
		if (i > 0) if (aFunc[i].first == aFunc[i - 1].first) eqa++;
		else eqa = 0;
		sub[aFunc[i].second] += i - eqa;
		if (i > 0) if (bFunc[i].first == bFunc[i - 1].first) eqb++;
		else eqb = 0;
		sub[bFunc[i].second] += i - eqb;
	}
	/*
	cout << endl;
	for (int i = 0; i < n; i++)
	{
		cout << i + 3 << ": " << sub[i] << "\n";
	}
	cout << endl;
	*/
	int maxim = -1;
	int save = -1;
	for (int i = 0; i < n; i++)
	{
		if (n - sub[i] + 2 > maxim)
		{
			maxim = n - sub[i] + 2;
			save = i + 3;
		}
	}

	cout << save << " " << maxim;
	return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva1ms332 KiB
2Hibás válasz63ms2372 KiB
subtask20/5
3Elfogadva2ms316 KiB
4Elfogadva2ms316 KiB
5Hibás válasz2ms508 KiB
6Hibás válasz2ms316 KiB
7Hibás válasz1ms316 KiB
8Hibás válasz1ms316 KiB
subtask30/10
9Hibás válasz1ms508 KiB
10Hibás válasz1ms500 KiB
11Hibás válasz4ms316 KiB
12Hibás válasz41ms1824 KiB
13Elfogadva52ms2180 KiB
14Elfogadva1ms316 KiB
subtask410/10
15Elfogadva1ms500 KiB
16Elfogadva1ms316 KiB
17Elfogadva1ms316 KiB
18Elfogadva1ms512 KiB
19Elfogadva3ms504 KiB
20Elfogadva3ms316 KiB
21Elfogadva25ms1332 KiB
22Elfogadva24ms1472 KiB
23Elfogadva24ms1332 KiB
24Elfogadva82ms3944 KiB
subtask50/20
25Elfogadva2ms316 KiB
26Elfogadva2ms316 KiB
27Hibás válasz2ms508 KiB
28Hibás válasz2ms316 KiB
29Hibás válasz1ms316 KiB
30Hibás válasz1ms316 KiB
31Hibás válasz1ms508 KiB
32Hibás válasz1ms500 KiB
33Hibás válasz4ms316 KiB
34Hibás válasz41ms1824 KiB
35Elfogadva52ms2180 KiB
36Hibás válasz2ms512 KiB
37Hibás válasz3ms316 KiB
38Hibás válasz4ms316 KiB
39Hibás válasz4ms544 KiB
40Hibás válasz6ms756 KiB
41Hibás válasz8ms764 KiB
42Hibás válasz19ms1120 KiB
43Hibás válasz29ms1476 KiB
44Hibás válasz39ms1828 KiB
45Hibás válasz48ms2188 KiB
46Elfogadva39ms2100 KiB
47Elfogadva1ms316 KiB
subtask60/55
48Elfogadva2ms316 KiB
49Hibás válasz64ms2540 KiB
50Elfogadva2ms316 KiB
51Hibás válasz2ms508 KiB
52Hibás válasz2ms316 KiB
53Hibás válasz1ms316 KiB
54Hibás válasz1ms316 KiB
55Hibás válasz1ms508 KiB
56Hibás válasz1ms500 KiB
57Hibás válasz4ms316 KiB
58Hibás válasz41ms1824 KiB
59Elfogadva52ms2180 KiB
60Elfogadva1ms500 KiB
61Elfogadva1ms316 KiB
62Elfogadva1ms316 KiB
63Elfogadva1ms512 KiB
64Elfogadva3ms504 KiB
65Elfogadva3ms316 KiB
66Elfogadva25ms1332 KiB
67Elfogadva24ms1472 KiB
68Elfogadva24ms1332 KiB
69Elfogadva82ms3944 KiB
70Hibás válasz2ms512 KiB
71Hibás válasz3ms316 KiB
72Hibás válasz4ms316 KiB
73Hibás válasz4ms544 KiB
74Hibás válasz6ms756 KiB
75Hibás válasz8ms764 KiB
76Hibás válasz19ms1120 KiB
77Hibás válasz29ms1476 KiB
78Hibás válasz39ms1828 KiB
79Hibás válasz48ms2188 KiB
80Hibás válasz2ms316 KiB
81Hibás válasz3ms316 KiB
82Hibás válasz4ms500 KiB
83Hibás válasz4ms540 KiB
84Hibás válasz4ms580 KiB
85Hibás válasz8ms720 KiB
86Hibás válasz19ms1128 KiB
87Hibás válasz28ms1332 KiB
88Hibás válasz41ms1824 KiB
89Hibás válasz52ms2100 KiB
90Hibás válasz63ms2528 KiB
91Hibás válasz72ms2876 KiB
92Hibás válasz82ms3240 KiB
93Hibás válasz94ms3380 KiB
94Hibás válasz94ms3580 KiB
95Hibás válasz104ms3940 KiB
96Hibás válasz107ms3892 KiB
97Elfogadva104ms3892 KiB
98Elfogadva103ms3940 KiB
99Hibás válasz104ms3892 KiB
100Elfogadva39ms2100 KiB
101Elfogadva1ms316 KiB