#include <bits/stdc++.h>
using namespace std;
void bejar2(vector<vector<int>>* tabla, pair<int , int> kezd, int nap, int N, int M, int** olvad, int** volt) {
volt[kezd.first][kezd.second] = nap;
if (olvad[kezd.first][kezd.second] < nap) {
olvad[kezd.first][kezd.second] = nap;
}
if (kezd.first != 0 && volt[kezd.first - 1][kezd.second] < nap) {
bejar2(tabla, pair<int,int>(kezd.first - 1, kezd.second), min(nap, (*tabla)[kezd.first - 1][kezd.second]), N, M, olvad, volt);
} // fel
if (kezd.first != N - 1 && volt[kezd.first + 1][kezd.second] < nap) {
bejar2(tabla, pair<int,int>(kezd.first + 1, kezd.second), min(nap, (*tabla)[kezd.first + 1][kezd.second]), N, M, olvad, volt);
} // le
if (kezd.second != 0 && volt[kezd.first][kezd.second - 1] < nap) {
bejar2(tabla, pair<int,int>(kezd.first, kezd.second - 1), min(nap, (*tabla)[kezd.first][kezd.second - 1]), N, M, olvad, volt);
} // balra
if (kezd.second != M - 1 && volt[kezd.first][kezd.second + 1] < nap) {
bejar2(tabla, pair<int,int>(kezd.first, kezd.second + 1), min(nap, (*tabla)[kezd.first][kezd.second + 1]), N, M, olvad, volt);
} // jobbra
}
int main() {
int N, M; cin >> N >> M;
vector<vector<int>> tabla;
vector<vector<int>> halak;
pair<int, int> medve;
set<int> napok;
for (int i = 0; i < N; i++)
{
vector<int> tmp;
for (int k = 0; k < M; k++)
{
int x; cin >> x;
if (x == -1) {
medve.first = i;
medve.second = k;
}
napok.insert(x);
tmp.push_back(x);
}
tabla.push_back(tmp);
}
for (int i = 0; i < N; i++)
{
vector<int> tmp;
for (int k = 0; k < M; k++)
{
int x; cin >> x;
tmp.push_back(x);
}
halak.push_back(tmp);
}
vector<long long int> napok_halak;
{
int ** olvad = new int*[N];
for (int i = 0; i < N; i++)
{
olvad[i] = new int[M];
fill(olvad[i], olvad[i] + M, -1);
}
int ** volt = new int*[N];
for (int i = 0; i < N; i++)
{
volt[i] = new int[M];
fill(volt[i], volt[i] + M, -1);
}
if (medve.first != 0) {
bejar2(&tabla, pair<int, int> (medve.first - 1, medve.second), tabla[medve.first - 1][medve.second], N, M, olvad, volt);
}
if (medve.first != N - 1) {
bejar2(&tabla, pair<int, int> (medve.first + 1, medve.second), tabla[medve.first + 1][medve.second], N, M, olvad, volt);
}
if (medve.second != 0) {
bejar2(&tabla, pair<int, int> (medve.first, medve.second - 1), tabla[medve.first][medve.second - 1], N, M, olvad, volt);
}
if (medve.second != M - 1) {
bejar2(&tabla, pair<int, int> (medve.first, medve.second + 1), tabla[medve.first][medve.second + 1], N, M, olvad, volt);
}
olvad[medve.first][medve.second] = *(--napok.end());
napok_halak.resize(*(--napok.end()) + 1);
fill_n(napok_halak.begin(), napok_halak.size(), 0);
for (int i = 0; i < N; i++)
{
for (int k = 0; k < M; k++)
{
napok_halak[olvad[i][k]] += halak[i][k];
}
}
}
int nap = 0;
for (int i = 0; i < napok_halak.size(); i++)
{
nap = min(napok_halak[i] + nap, i);
}
cout << nap + 1;
return 0;
}
Forditási hiba
exit status 1
main.cpp: In function 'int main()':
main.cpp:96:18: error: no matching function for call to 'min(__gnu_cxx::__alloc_traits<std::allocator<long long int>, long long int>::value_type, int&)'
96 | nap = min(napok_halak[i] + nap, i);
| ~~~^~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/11/bits/char_traits.h:39,
from /usr/include/c++/11/ios:40,
from /usr/include/c++/11/istream:38,
from /usr/include/c++/11/sstream:38,
from /usr/include/c++/11/complex:45,
from /usr/include/c++/11/ccomplex:39,
from /usr/include/x86_64-linux-gnu/c++/11/bits/stdc++.h:54,
from main.cpp:1:
/usr/include/c++/11/bits/stl_algobase.h:230:5: note: candidate: 'template<class _Tp> const _Tp& std::min(const _Tp&, const _Tp&)'
230 | min(const _Tp& __a, const _Tp& __b)
| ^~~
/usr/include/c++/11/bits/stl_algobase.h:230:5: note: template argument deduction/substitutio...