Submission #1166825

#TimeUsernameProblemLanguageResultExecution timeMemory
1166825icebearSeptember (APIO24_september)C++20
Compilation error
0 ms0 KiB
// ~~ icebear love atttt ~~
#include <bits/stdc++.h>
using namespace std;

const int MOD = 1e9 + 7;
const int inf = 1e9 + 27092008;
const long long INF = 1e18 + 27092008;
const int N = 2e5 + 5;
vector<int> G[N];
int max_sub[5][N], max_node[N];

void dfs(int id, int u, int par) {
    for(int v : G[u]) if (v != par) {
        dfs(id, v, u);
        max_sub[id][u] = max(max_sub[id][u], max_sub[id][v]);
    }
}

int solve(int numNode, int numPerson, vector<int> graph, vector<vector<int>> records) {
    for(int i = 1; i < numNode; i++) {
        G[i].push_back(graph[i]);
        G[graph[i]].push_back(i);
    }

    for(int i = 0; i < numPerson; i++)
        for(int j = 0; j < numNode - 1; j++) {
            max_sub[i][records[i][j]] = j;
            max_node[records[i][j]] = max(max_node[records[i][j], j);
        }

    for(int i = 0; i < numPerson; i++)
        dfs(i, 0, -1);

    int last_day = -1, ans = 0;
    for(int cur_day = 0; cur_day < numNode - 1; cur_day++) {
        if (last_day < cur_day) ans++;

        int max_day = 0;
        for(int per = 0; per < numPerson; per++)
            max_day = max({max_day, max_sub[per][records[per][cur_day]], max_node[records[per][cur_day]]});
//        cout << cur_day << ' ' << max_day << endl;
        last_day = max(last_day, max_day);
    }

    for(int i = 0; i < numNode; i++) {
        G[i].clear();
        max_node[i] = 0;
    }
    return ans;
}

// int main() {
//     ios_base::sync_with_stdio(0);
//     cin.tie(0); cout.tie(0);
//     cout << solve(3, 1, {-1, 0, 0}, {{1, 2}}) << endl;
//     cout << solve(5, 2, {-1, 0, 0, 1, 1}, {{1, 2, 3, 4}, {4, 1, 2, 3}}) << endl;
//     return 0;
// }

Compilation message (stderr)

september.cpp: In function 'int solve(int, int, std::vector<int>, std::vector<std::vector<int> >)':
september.cpp:28:65: warning: top-level comma expression in array subscript is deprecated [-Wcomma-subscript]
   28 |             max_node[records[i][j]] = max(max_node[records[i][j], j);
      |                                                                 ^
september.cpp:28:68: error: expected ']' before ')' token
   28 |             max_node[records[i][j]] = max(max_node[records[i][j], j);
      |                                                                    ^
      |                                                                    ]
september.cpp:28:42: error: no matching function for call to 'max(int&)'
   28 |             max_node[records[i][j]] = max(max_node[records[i][j], j);
      |                                       ~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/11/bits/specfun.h:45,
                 from /usr/include/c++/11/cmath:1935,
                 from /usr/include/x86_64-linux-gnu/c++/11/bits/stdc++.h:41,
                 from september.cpp:2:
/usr/include/c++/11/bits/stl_algobase.h:254:5: note: candidate: 'template<class _Tp> constexpr const _Tp& std::max(const _Tp&, const _Tp&)'
  254 |     max(const _Tp& __a, const _Tp& __b)
      |     ^~~
/usr/include/c++/11/bits/stl_algobase.h:254:5: note:   template argument deduction/substitution failed:
september.cpp:28:42: note:   candidate expects 2 arguments, 1 provided
   28 |             max_node[records[i][j]] = max(max_node[records[i][j], j);
      |                                       ~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/11/bits/specfun.h:45,
                 from /usr/include/c++/11/cmath:1935,
                 from /usr/include/x86_64-linux-gnu/c++/11/bits/stdc++.h:41,
                 from september.cpp:2:
/usr/include/c++/11/bits/stl_algobase.h:300:5: note: candidate: 'template<class _Tp, class _Compare> constexpr const _Tp& std::max(const _Tp&, const _Tp&, _Compare)'
  300 |     max(const _Tp& __a, const _Tp& __b, _Compare __comp)
      |     ^~~
/usr/include/c++/11/bits/stl_algobase.h:300:5: note:   template argument deduction/substitution failed:
september.cpp:28:42: note:   candidate expects 3 arguments, 1 provided
   28 |             max_node[records[i][j]] = max(max_node[records[i][j], j);
      |                                       ~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/11/string:52,
                 from /usr/include/c++/11/bits/locale_classes.h:40,
                 from /usr/include/c++/11/bits/ios_base.h:41,
                 from /usr/include/c++/11/ios:42,
                 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 september.cpp:2:
/usr/include/c++/11/bits/stl_algo.h:3461:5: note: candidate: 'template<class _Tp> constexpr _Tp std::max(std::initializer_list<_Tp>)'
 3461 |     max(initializer_list<_Tp> __l)
      |     ^~~
/usr/include/c++/11/bits/stl_algo.h:3461:5: note:   template argument deduction/substitution failed:
september.cpp:28:42: note:   mismatched types 'std::initializer_list<_Tp>' and 'int'
   28 |             max_node[records[i][j]] = max(max_node[records[i][j], j);
      |                                       ~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/11/string:52,
                 from /usr/include/c++/11/bits/locale_classes.h:40,
                 from /usr/include/c++/11/bits/ios_base.h:41,
                 from /usr/include/c++/11/ios:42,
                 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 september.cpp:2:
/usr/include/c++/11/bits/stl_algo.h:3467:5: note: candidate: 'template<class _Tp, class _Compare> constexpr _Tp std::max(std::initializer_list<_Tp>, _Compare)'
 3467 |     max(initializer_list<_Tp> __l, _Compare __comp)
      |     ^~~
/usr/include/c++/11/bits/stl_algo.h:3467:5: note:   template argument deduction/substitution failed:
september.cpp:28:42: note:   mismatched types 'std::initializer_list<_Tp>' and 'int'
   28 |             max_node[records[i][j]] = max(max_node[records[i][j], j);
      |                                       ~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~