Submission #1205121

#TimeUsernameProblemLanguageResultExecution timeMemory
1205121simona1230Dungeons Game (IOI21_dungeons)C++20
Compilation error
0 ms0 KiB
#include "dungeons.h" #include <bits/stdc++.h> using namespace std; const int maxn=5*1e5+5; const int logg=30; int n; vector<int> s,p,w,l,h; vector<long long> v; long long sum[maxn][32]; int ver[maxn][32]; void construct(long long x) { for(int i=0; i<n; i++) { if(x>s[i]) { ver[i][0]=w[i]; sum[i][0]=s[i]; } else { ver[i][0]=l[i]; sum[i][0]=p[i]; } } ver[n][0]=n; for(int j=1; j<=logg; j++) for(int i=0; i<=n; i++) { sum[i][j]=sum[i][j-1]+sum[ver[i][j-1]][j-1]; if(1e18-sum[i][j-1]<sum[ver[i][j-1]][j-1])sum[i][j]=1e18; ver[i][j]=ver[ver[i][j-1]][j-1]; //cout<<ver[i][j][num]<<" "<<i<<" "<<(1<<j)<<endl; } } void init(int N, std::vector<int> S, std::vector<int> P, std::vector<int> W, std::vector<int> L) { n=N; s=S; p=P; w=W; l=L; h=s; sort(h.begin(),h.end()); v= {h[0]}; for(int i=1; i<h.size(); i++) if(h[i]!=h[i-1])v.push_back(h[i]); v.push_back(1e18); return; } long long simulate(int x, int zz) { long long z=zz; int num=0; while(num<v.size()&&z>=v[num])num++; num=min(num,v.size()-1); construct(v[num]); int in=0; while(num<v.size()) { in++; //cout<<x<<" "<<z<<" "<<v[num]<<endl; for(int j=logg;j>=0;j--) { if(z+sum[x][j]<v[num]) { z+=sum[x][j]; x=ver[x][j]; } } if(x==n)return z; if(in>10)return 0; z+=sum[x][0]; x=ver[x][0]; if(x==n)return z; while(num<v.size()&&z>=v[num])num++; num=min(num,v.size()-1); construct(v[num]); } return z; }

Compilation message (stderr)

dungeons.cpp: In function 'long long int simulate(int, int)':
dungeons.cpp:61:12: error: no matching function for call to 'min(int&, std::vector<long long int>::size_type)'
   61 |     num=min(num,v.size()-1);
      |         ~~~^~~~~~~~~~~~~~~~
In file included from /usr/include/c++/11/vector:60,
                 from dungeons.h:1,
                 from dungeons.cpp:1:
/usr/include/c++/11/bits/stl_algobase.h:230:5: note: candidate: 'template<class _Tp> constexpr 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/substitution failed:
dungeons.cpp:61:12: note:   deduced conflicting types for parameter 'const _Tp' ('int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'})
   61 |     num=min(num,v.size()-1);
      |         ~~~^~~~~~~~~~~~~~~~
In file included from /usr/include/c++/11/vector:60,
                 from dungeons.h:1,
                 from dungeons.cpp:1:
/usr/include/c++/11/bits/stl_algobase.h:278:5: note: candidate: 'template<class _Tp, class _Compare> constexpr const _Tp& std::min(const _Tp&, const _Tp&, _Compare)'
  278 |     min(const _Tp& __a, const _Tp& __b, _Compare __comp)
      |     ^~~
/usr/include/c++/11/bits/stl_algobase.h:278:5: note:   template argument deduction/substitution failed:
dungeons.cpp:61:12: note:   deduced conflicting types for parameter 'const _Tp' ('int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'})
   61 |     num=min(num,v.size()-1);
      |         ~~~^~~~~~~~~~~~~~~~
In file included from /usr/include/c++/11/vector:62,
                 from dungeons.h:1,
                 from dungeons.cpp:1:
/usr/include/c++/11/bits/stl_algo.h:3449:5: note: candidate: 'template<class _Tp> constexpr _Tp std::min(std::initializer_list<_Tp>)'
 3449 |     min(initializer_list<_Tp> __l)
      |     ^~~
/usr/include/c++/11/bits/stl_algo.h:3449:5: note:   template argument deduction/substitution failed:
dungeons.cpp:61:12: note:   mismatched types 'std::initializer_list<_Tp>' and 'int'
   61 |     num=min(num,v.size()-1);
      |         ~~~^~~~~~~~~~~~~~~~
In file included from /usr/include/c++/11/vector:62,
                 from dungeons.h:1,
                 from dungeons.cpp:1:
/usr/include/c++/11/bits/stl_algo.h:3455:5: note: candidate: 'template<class _Tp, class _Compare> constexpr _Tp std::min(std::initializer_list<_Tp>, _Compare)'
 3455 |     min(initializer_list<_Tp> __l, _Compare __comp)
      |     ^~~
/usr/include/c++/11/bits/stl_algo.h:3455:5: note:   template argument deduction/substitution failed:
dungeons.cpp:61:12: note:   mismatched types 'std::initializer_list<_Tp>' and 'int'
   61 |     num=min(num,v.size()-1);
      |         ~~~^~~~~~~~~~~~~~~~
dungeons.cpp:83:16: error: no matching function for call to 'min(int&, std::vector<long long int>::size_type)'
   83 |         num=min(num,v.size()-1);
      |             ~~~^~~~~~~~~~~~~~~~
In file included from /usr/include/c++/11/vector:60,
                 from dungeons.h:1,
                 from dungeons.cpp:1:
/usr/include/c++/11/bits/stl_algobase.h:230:5: note: candidate: 'template<class _Tp> constexpr 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/substitution failed:
dungeons.cpp:83:16: note:   deduced conflicting types for parameter 'const _Tp' ('int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'})
   83 |         num=min(num,v.size()-1);
      |             ~~~^~~~~~~~~~~~~~~~
In file included from /usr/include/c++/11/vector:60,
                 from dungeons.h:1,
                 from dungeons.cpp:1:
/usr/include/c++/11/bits/stl_algobase.h:278:5: note: candidate: 'template<class _Tp, class _Compare> constexpr const _Tp& std::min(const _Tp&, const _Tp&, _Compare)'
  278 |     min(const _Tp& __a, const _Tp& __b, _Compare __comp)
      |     ^~~
/usr/include/c++/11/bits/stl_algobase.h:278:5: note:   template argument deduction/substitution failed:
dungeons.cpp:83:16: note:   deduced conflicting types for parameter 'const _Tp' ('int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'})
   83 |         num=min(num,v.size()-1);
      |             ~~~^~~~~~~~~~~~~~~~
In file included from /usr/include/c++/11/vector:62,
                 from dungeons.h:1,
                 from dungeons.cpp:1:
/usr/include/c++/11/bits/stl_algo.h:3449:5: note: candidate: 'template<class _Tp> constexpr _Tp std::min(std::initializer_list<_Tp>)'
 3449 |     min(initializer_list<_Tp> __l)
      |     ^~~
/usr/include/c++/11/bits/stl_algo.h:3449:5: note:   template argument deduction/substitution failed:
dungeons.cpp:83:16: note:   mismatched types 'std::initializer_list<_Tp>' and 'int'
   83 |         num=min(num,v.size()-1);
      |             ~~~^~~~~~~~~~~~~~~~
In file included from /usr/include/c++/11/vector:62,
                 from dungeons.h:1,
                 from dungeons.cpp:1:
/usr/include/c++/11/bits/stl_algo.h:3455:5: note: candidate: 'template<class _Tp, class _Compare> constexpr _Tp std::min(std::initializer_list<_Tp>, _Compare)'
 3455 |     min(initializer_list<_Tp> __l, _Compare __comp)
      |     ^~~
/usr/include/c++/11/bits/stl_algo.h:3455:5: note:   template argument deduction/substitution failed:
dungeons.cpp:83:16: note:   mismatched types 'std::initializer_list<_Tp>' and 'int'
   83 |         num=min(num,v.size()-1);
      |             ~~~^~~~~~~~~~~~~~~~