| 24787 | 2026-02-15 10:33:22 | CzDani | MI bróker (50 pont) | cpp17 | Compilation error |
#include <bits/stdc++.h>
using namespace std;
#define int long long
signed main() {
int n, q;
cin >> n >> q;
vector<int> v(n+1);
for (int i = 1; i <= n; i++) {
cin >> v[i];
}
vector<vector<pair<int, int>>> dpv(501), dpe(501);
//stat: 1:mar johet a kovi vetel (k feletti reszben vagyunk mar) 0: meg nem jott k-nal magasabb a legutobbi vetel ota
for (int k = 1; k <= 500; k++) {
int stat = 1, maxi = 501;
for (int i = 1; i <= n; i++) {
if (stat==1&&v[i]<=k) {
dpv[k].push_back({maxi, -v[i]});
stat=0;
maxi=0;
} else if (stat==1) {
maxi=max(maxi,v[i]);
} else if (stat==0&&v[i]>k) {
maxi=v[i];
stat=1;
}
if (k==40) {
// cout << i << ": " << stat << ' ' << maxi << endl;
}
}
sort(dpv[k].begin(), dpv[k].end());
dpv[k].push_back({502, 0});
int m = dpv[k].size();
for (int i = m-2; i >= 0; i--) {
dpv[k][i]={dpv[k][i].first, dpv[k][i].second+dpv[k][i+1].second};
}
}
//stat: 1: mar johet az eladas (szval k alatti reszben voltunk eddig), 0: eddig nem jott knal nagyobb egyenlo
for (int k = 1; k <= 500; k++) {
int stat = 0, mini = 501;
for (int i = 1; i <= n; i++) {
if (stat==1&&v[i]>=k) {
dpe[k].push_back({mini, v[i]});
stat=0;
mini=501;
} else if (stat==1) {
mini=min(mini,v[i]);
} else if (stat==0&&v[i]<k) {
mini=v[i];
stat=1;
}
if (k==120) {
//cout << i << ": " << stat << ' ' << mini << endl;
}
}
dpe[k].push_back({0, 0});
sort(dpe[k].begin(), dpe[k].end());
int m = dpe[k].size();
for (int i = 1; i < m; i++) {
dpe[k][i] = {dpe[k][i].first, dpe[k][i].second + dpe[k][i-1].second};
}
}
// for (int i = 0; i < dpv[40].size(); i++)cout<<dpv[40][i].first << ' ' << dpv[40][i].second << endl;
// for (int i = 0; i < dpe[120].size(); i++)cout<<dpe[120][i].first << ' ' << dpe[120][i].second << endl;
while (q--) {
int a, b;
cin >> a >> b;
auto it = upper_bound(dpe[b].begin(), dpe[b].end(), make_pair(a, 501));
it--;
cout << it->second + lower_bound(dpv[a].begin(), dpv[a].end(), make_pair(b, -501))->second << endl;
// cout << a << ' ' << b << ' ' << lower_bound(dpv[a].begin(), dpv[a].end(), make_pair(b, -502))->second << endl;
}
}
open /var/local/lib/isolate/430/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/bits/specfun.h:45,
from /usr/include/c++/12/cmath:1935,
from /usr/include/x86_64-linux-gnu/c++/12/bits/stdc++.h:41,
from main.cpp:1:
/usr/include/c++/12/bits/predefined_ops.h: In instantiation of 'bool __gnu_cxx::__ops::_Val_less_iter::operator()(_Value&, _Iterator) const [with _Value = const std::pair<long long int, int>; _Iterator = __gnu_cxx::__normal_iterator<std::pair<long long int, long long int>*, std::vector<std::pair<long long int, long long int> > >]':
/usr/include/c++/12/bits/stl_algo.h:2024:14: required from '_ForwardIterator std::__upper_bound(_ForwardIterator, _ForwardIterator, const _Tp&, _Compare) [with _ForwardIterator = __gnu_cxx::__normal_iterator<pair<long long int, long long int>*, vector<pair<long long int, long long int> > >; _Tp = pair<long long int, int>; _Compare = __gnu_cxx::__ops::_Val_less_iter]'
/usr/include/c++/12/bits/stl_algo.h:2059:32: required from '_FIter std::upper_bound(_FIter, _FIter, const _Tp&) [with _FIter = __gnu_cxx::__normal_iterator<pair<long long int, long long int>*, vector<pair<long long int, long long int> > >; _Tp = pair<long long int, int>]'
main.cpp:69:30: required from here
/usr/include/c++/12/bits/predefined_ops.h:98:22: error: no match for 'operator<' (operand types are 'const std::pair<long long int, int>' and 'std::pair<long long int, long long int>')
98 | { return __val < *__it; }
| ~~~~~~^~~~~~~
In file included from /usr/include/c++/12/bits/stl_algobase.h:67:
/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 | operator<(const __normal_iterator<_IteratorL, _Container>& __lhs,
...