Submission #1201763

#TimeUsernameProblemLanguageResultExecution timeMemory
1201763noopSeptember (APIO24_september)C++20
Compilation error
0 ms0 KiB
#include <bits/stdc++.h>
using namespace std;
int solve(int N, int M, std::vector<int> F, std::vector<std::vector<int>> S) {
  vector<int> g(N,0);
  vector<bool> s(N,0);
  vector<vector<int> > v(M,vector<int>(N));
  unordered_set<int> req;
  int ans=0,t=0,c,p;
  bool flag;
  for (int i=1; i<N; i++){
    g[F[i]]++;
  }
  for (int i=0; i<S[0].size(); i++){
    c=S[0][i];
    if (g[c]){
      t++;
      s[c]=1;
    }
    p=F[c];
    g[p]--;
    if (!g[p] and s[p]){
      t--;
      s[p]=0;
    }
    for (int r=0; r<M; r++){
      v[r][S[r][i]]++;
      req.insert(S[r][i]);
    }
    for (auto it=req.begin(); it!=req.end(); it++){
      flag=1;
      c=*it;
      for (int r=1; r<M; r++){
        if (v[r][c]!=v[0][c]){
          flag=0;
          break;
        }
      }
      if (flag){
        it=req.erase(c);
      }
    }
    if (!t and req.empty()){
      ans++;
    }
  }
  return ans;
}

Compilation message (stderr)

september.cpp: In function 'int solve(int, int, std::vector<int>, std::vector<std::vector<int> >)':
september.cpp:39:23: error: no match for 'operator=' (operand types are 'std::__detail::_Node_iterator<int, true, false>' and 'std::unordered_set<int>::size_type' {aka 'long unsigned int'})
   39 |         it=req.erase(c);
      |                       ^
In file included from /usr/include/c++/11/bits/hashtable.h:35,
                 from /usr/include/c++/11/unordered_map:46,
                 from /usr/include/c++/11/functional:61,
                 from /usr/include/c++/11/pstl/glue_algorithm_defs.h:13,
                 from /usr/include/c++/11/algorithm:74,
                 from /usr/include/x86_64-linux-gnu/c++/11/bits/stdc++.h:65,
                 from september.cpp:1:
/usr/include/c++/11/bits/hashtable_policy.h:317:12: note: candidate: 'constexpr std::__detail::_Node_iterator<int, true, false>& std::__detail::_Node_iterator<int, true, false>::operator=(const std::__detail::_Node_iterator<int, true, false>&)'
  317 |     struct _Node_iterator
      |            ^~~~~~~~~~~~~~
/usr/include/c++/11/bits/hashtable_policy.h:317:12: note:   no known conversion for argument 1 from 'std::unordered_set<int>::size_type' {aka 'long unsigned int'} to 'const std::__detail::_Node_iterator<int, true, false>&'
/usr/include/c++/11/bits/hashtable_policy.h:317:12: note: candidate: 'constexpr std::__detail::_Node_iterator<int, true, false>& std::__detail::_Node_iterator<int, true, false>::operator=(std::__detail::_Node_iterator<int, true, false>&&)'
/usr/include/c++/11/bits/hashtable_policy.h:317:12: note:   no known conversion for argument 1 from 'std::unordered_set<int>::size_type' {aka 'long unsigned int'} to 'std::__detail::_Node_iterator<int, true, false>&&'