235282026-01-24 11:56:16KateTaylorWalking In The Parkcpp17Forditási hiba
#include <iostream>
#include <vector>
#include <map>
#include <algorithm>
using namespace std;

typedef long long ll;

int main() {
	ios::sync_with_stdio(false);
	cin.tie(0); cout.tie(0);
	int n, m, k;
	cin >> n >> m >> k;
	vector<ll> a(n), b(m);
	vector<pair<ll, int>> v;
	map<ll, int> pos;
	cin >> a[0];
	for (int i = 1; i < n; i++) {
		cin >> a[i];
		a[i] += a[i - 1];
	}
	cin >> b[0];
	pos[b[0]] = 0;
	for (int i = 1; i < m; i++) {
		cin >> b[i];
		b[i] += b[i - 1];
		pos[b[i]] = i;
	}
	if (a.back() != b.back()) {
		cout << -1;
		return 0;
	}
	for (int i = 0; i < n; i++) {
		if (!pos.count(a[i])) continue;
		v.push_back({ pos[a[i]], i });
	}
	vector<pair<ll, int>> dp = { {1e18, 1e9} };
	vector<int> par(n, -1);
	for (auto p : v) {
		int i = p.second, x = p.first;
		int pp = lower_bound(dp.begin(), dp.end(), make_pair(x, i)) - dp.begin();
		if (pp == dp.size() - 1) {
			dp[pp] = p;
			dp.push_back({ 1e18, 1e9 });
		}
		else dp[pp] = p;
		if (pp) par[i] = dp[pp - 1].second;
	}
	vector<int> ans;
	int curr = n - 1;
	while (ans.size() < k && curr != -1) {
		ans.push_back(curr);
		curr = par[curr];
	}
	if (ans.size() < k) {
		cout << -1;
		return 0;
	}
	reverse(ans.begin(), ans.end());
	ans.pop_back();
	for (int x : ans) cout << ++x << " ";
	cout << "\n";
	for (int x : ans) cout << pos[a[x]] + 1 << " ";
	return 0;
}
Forditási hiba
open /var/local/lib/isolate/423/box/a.out: no such file or directory
In file included from /usr/include/c++/12/bits/stl_algobase.h:71,
                 from /usr/include/c++/12/string:50,
                 from /usr/include/c++/12/bits/locale_classes.h:40,
                 from /usr/include/c++/12/bits/ios_base.h:41,
                 from /usr/include/c++/12/ios:42,
                 from /usr/include/c++/12/ostream:38,
                 from /usr/include/c++/12/iostream:39,
                 from main.cpp:1:
/usr/include/c++/12/bits/predefined_ops.h: In instantiation of 'bool __gnu_cxx::__ops::_Iter_less_val::operator()(_Iterator, _Value&) const [with _Iterator = __gnu_cxx::__normal_iterator<std::pair<long long int, int>*, std::vector<std::pair<long long int, int> > >; _Value = const std::pair<int, int>]':
/usr/include/c++/12/bits/stl_algobase.h:1463:14:   required from '_ForwardIterator std::__lower_bound(_ForwardIterator, _ForwardIterator, const _Tp&, _Compare) [with _ForwardIterator = __gnu_cxx::__normal_iterator<pair<long long int, int>*, vector<pair<long long int, int> > >; _Tp = pair<int, int>; _Compare = __gnu_cxx::__ops::_Iter_less_val]'
/usr/include/c++/12/bits/stl_algobase.h:1498:32:   required from '_ForwardIterator std::lower_bound(_ForwardIterator, _ForwardIterator, const _Tp&) [with _ForwardIterator = __gnu_cxx::__normal_iterator<pair<long long int, int>*, vector<pair<long long int, int> > >; _Tp = pair<int, int>]'
main.cpp:41:23:   required from here
/usr/include/c++/12/bits/predefined_ops.h:69:22: error: no match for 'operator<' (operand types are 'std::pair<long long int, int>' and 'const std::pair<int, int>')
   69 |       { return *__it < __val; }
      |                ~~~~~~^~~~~~~
In file included from /usr/include/c++/12/string:47:
/usr/include/c++/12/bits/stl_iterator.h:1246:5: note: candidate: 'template<class _IteratorL, class _IteratorR, class _Container> bool __gnu_cxx::operator<(const __normal_iterator<_IteratorL, _Container>&, const __normal_iterator<_IteratorR, _Container>&)'
 1246 |  ...