89022024-02-03 18:26:37IgnácLegtöbbször szomszédok (75 pont)cpp17Hibás válasz 47/75268ms8392 KiB
// Source: https://usaco.guide/general/io

#include <bits/stdc++.h>
using namespace std;

int main() {
	int n, m;
	cin >> n >> m;
	map<int, vector<int>> a;
	map<int, int> dbe, dbm;
	for (int i = 1; i <= m - 1; i++) {
		int pont;
		cin >> pont;
		a[pont].push_back(i);
	}

	int p;
	cin >> p;
	int laste = 100001, lastm = 0;
	for (pair<int, vector<int>> lo : a) {
		if (lo.first > p) laste = lo.first;
		if (lo.first < p && lastm == 0) lastm = lo.first;
	}

	for (int lo : a[laste]) {
		dbe[lo]++;
	}

	for (int lo : a[lastm]) {
		dbm[lo]++;
	}

	vector<int> ee = a[laste], mm = a[lastm];
	for (int i = m + 1; i <= n; i++) {
		int pont;
		cin >> pont;
		if (pont == laste) ee.push_back(i);
		if (pont == lastm) mm.push_back(i);
		if (pont < laste && pont > p) {
			ee = {i};
			laste = pont;
		}

		if (pont > lastm && pont < p) {
			mm = {i};
			lastm = pont;
		}
		for (int lo : ee) dbe[lo]++;
		for (int lo : mm) dbm[lo]++;
	}

	int be = -1;
	for (pair<int, int> lo : dbe) {
		if (lo.second > dbe[be]) be = lo.first;
	}

	if (be == -1) cout << "-1\n";
	else cout << be << " " << dbe[be] << "\n";

	int bm = -1;
	for (pair<int, int> lo : dbm) {
		if (lo.second > dbm[bm]) bm = lo.first;
	}

	if (bm == -1) cout << "-1\n";
	else cout << bm << " " << dbm[bm] << "\n";
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base47/75
1Elfogadva0/03ms1972 KiB
2Hibás válasz0/0148ms2932 KiB
3Elfogadva2/23ms2728 KiB
4Elfogadva2/23ms2832 KiB
5Hibás válasz0/43ms3044 KiB
6Részben helyes2/43ms3260 KiB
7Elfogadva3/33ms3356 KiB
8Részben helyes2/43ms3488 KiB
9Hibás válasz0/46ms4572 KiB
10Elfogadva4/44ms3872 KiB
11Elfogadva4/46ms4256 KiB
12Elfogadva4/48ms4156 KiB
13Elfogadva4/48ms4248 KiB
14Elfogadva4/48ms4368 KiB
15Elfogadva4/48ms4444 KiB
16Elfogadva4/412ms4676 KiB
17Elfogadva4/414ms5068 KiB
18Elfogadva4/419ms5364 KiB
19Időlimit túllépés0/4261ms4684 KiB
20Időlimit túllépés0/4268ms5052 KiB
21Időlimit túllépés0/4237ms5164 KiB
22Hibás válasz0/448ms8392 KiB