Submission #848057

#TimeUsernameProblemLanguageResultExecution timeMemory
848057LibOvertaking (IOI23_overtaking)C++17
Compilation error
0 ms0 KiB
#include "overtaking.h" #include <bits/stdc++.h> using namespace std; long long rspeed[1003]; long long spos[1003]; long long stime[1003]; vector <vector <long long>; arrtime; //thoi gian xe k den ben i vector <long long> temp; pair<long long, int> sarrtime[1003][1003]; vector <pair<long long, int> > previ; long long ok[1003]; long long atime[1003]; void init(int L, int N, std::vector<long long> T, std::vector<int> W, int X, int M, std::vector<int> S) { long long len=L,spd=X; int n=N+1,m=M+1; for(int i=0;i<=n;i++){ arrtime.push_back(temp); for(int k=0;k<=m;k++){ arrtime[i].push_back(0); } } long long cmax; for(int i=1;i<=n;i++){ stime[i]=T[i-1]; arrtime[1][i]=stime[i]; sarrtime[1][i]={stime[i],i}; previ.push_back({stime[i],i}); } for(int i=1;i<=n;i++){ rspeed[i]=W[i-1]; } for(int i=1;i<=m;i++){ spos[i]=S[i-1]; } for(int i=2;i<=m;i++){ previ.push_back({0,0}); sort(previ.begin(),previ.end()); arrtime[i][previ[1].second]=arrtime[i-1][previ[1].second]+(spos[i]-spos[i-1])*rspeed[previ[1].second]; cmax=arrtime[i][previ[1].second]; for(int k=2;k<=n;k++){ cmax=max(cmax,previ[k].first+(spos[i]-spos[i-1])*rspeed[previ[k].second]); arrtime[i][previ[k].second]=cmax; sarrtime[i][previ[k].second]={arrtime[i][previ[k].second],previ[k].second}; } previ.clear(); for(int k=1;k<=n;k++){ previ.push_back({arrtime[i][k],k}); } } } long long arrival_time(long long Y){ int M=arrtime.size()-1; int N=arrtime[1].size()-1; for(int i=1;i<=M;i++){ if(arrtime[1][i]>Y){ ok[i]=0; }else{ ok[i]=1; } } atime[1]=Y; for(int i=2;i<=M;i++){ atime[i]=atime[i-1]+(spos[i]-spos[i-1])*spd; for(int k=1;k<=N;k++){ if(atime[i-1]<=arrtime[i-1][k]){ ok[k]=0; } if(ok[k]==1){ atime[i]=max(atime[i],arrtime[i][k]); } } } return atime[M]; }

Compilation message (stderr)

overtaking.cpp:7:9: error: template argument 1 is invalid
    7 | vector <vector <long long>; arrtime; //thoi gian xe k den ben i
      |         ^~~~~~~~~~~~~~~~~~
overtaking.cpp:7:9: error: template argument 2 is invalid
overtaking.cpp:7:29: error: 'arrtime' does not name a type; did you mean 'asctime'?
    7 | vector <vector <long long>; arrtime; //thoi gian xe k den ben i
      |                             ^~~~~~~
      |                             asctime
overtaking.cpp: In function 'void init(int, int, std::vector<long long int>, std::vector<int>, int, int, std::vector<int>)':
overtaking.cpp:18:3: error: 'arrtime' was not declared in this scope; did you mean 'sarrtime'?
   18 |   arrtime.push_back(temp);
      |   ^~~~~~~
      |   sarrtime
overtaking.cpp:26:3: error: 'arrtime' was not declared in this scope; did you mean 'sarrtime'?
   26 |   arrtime[1][i]=stime[i];
      |   ^~~~~~~
      |   sarrtime
overtaking.cpp:39:3: error: 'arrtime' was not declared in this scope; did you mean 'sarrtime'?
   39 |   arrtime[i][previ[1].second]=arrtime[i-1][previ[1].second]+(spos[i]-spos[i-1])*rspeed[previ[1].second];
      |   ^~~~~~~
      |   sarrtime
overtaking.cpp:44:77: error: no match for 'operator=' (operand types are 'std::pair<long long int, int>' and '<brace-enclosed initializer list>')
   44 |    sarrtime[i][previ[k].second]={arrtime[i][previ[k].second],previ[k].second};
      |                                                                             ^
In file included from /usr/include/c++/10/bits/stl_algobase.h:64,
                 from /usr/include/c++/10/vector:60,
                 from overtaking.h:1,
                 from overtaking.cpp:1:
/usr/include/c++/10/bits/stl_pair.h:390:7: note: candidate: 'std::pair<_T1, _T2>& std::pair<_T1, _T2>::operator=(typename std::conditional<std::__and_<std::is_copy_assignable<_T1>, std::is_copy_assignable<_T2> >::value, const std::pair<_T1, _T2>&, const std::__nonesuch&>::type) [with _T1 = long long int; _T2 = int; typename std::conditional<std::__and_<std::is_copy_assignable<_T1>, std::is_copy_assignable<_T2> >::value, const std::pair<_T1, _T2>&, const std::__nonesuch&>::type = const std::pair<long long int, int>&]'
  390 |       operator=(typename conditional<
      |       ^~~~~~~~
/usr/include/c++/10/bits/stl_pair.h:393:41: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'std::conditional<true, const std::pair<long long int, int>&, const std::__nonesuch&>::type' {aka 'const std::pair<long long int, int>&'}
  390 |       operator=(typename conditional<
      |                 ~~~~~~~~~~~~~~~~~~~~~    
  391 |   __and_<is_copy_assignable<_T1>,
      |   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~        
  392 |          is_copy_assignable<_T2>>::value,
      |          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  393 |   const pair&, const __nonesuch&>::type __p)
      |   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
/usr/include/c++/10/bits/stl_pair.h:401:7: note: candidate: 'std::pair<_T1, _T2>& std::pair<_T1, _T2>::operator=(typename std::conditional<std::__and_<std::is_move_assignable<_Tp>, std::is_move_assignable<_T2> >::value, std::pair<_T1, _T2>&&, std::__nonesuch&&>::type) [with _T1 = long long int; _T2 = int; typename std::conditional<std::__and_<std::is_move_assignable<_Tp>, std::is_move_assignable<_T2> >::value, std::pair<_T1, _T2>&&, std::__nonesuch&&>::type = std::pair<long long int, int>&&]'
  401 |       operator=(typename conditional<
      |       ^~~~~~~~
/usr/include/c++/10/bits/stl_pair.h:404:31: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'std::conditional<true, std::pair<long long int, int>&&, std::__nonesuch&&>::type' {aka 'std::pair<long long int, int>&&'}
  401 |       operator=(typename conditional<
      |                 ~~~~~~~~~~~~~~~~~~~~~
  402 |   __and_<is_move_assignable<_T1>,
      |   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  403 |          is_move_assignable<_T2>>::value,
      |          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  404 |   pair&&, __nonesuch&&>::type __p)
      |   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
/usr/include/c++/10/bits/stl_pair.h:418:2: note: candidate: 'template<class _U1, class _U2> typename std::enable_if<std::__and_<std::is_assignable<_T1&, const _U1&>, std::is_assignable<_T2&, const _U2&> >::value, std::pair<_T1, _T2>&>::type std::pair<_T1, _T2>::operator=(const std::pair<_U1, _U2>&) [with _U1 = _U1; _U2 = _U2; _T1 = long long int; _T2 = int]'
  418 |  operator=(const pair<_U1, _U2>& __p)
      |  ^~~~~~~~
/usr/include/c++/10/bits/stl_pair.h:418:2: note:   template argument deduction/substitution failed:
overtaking.cpp:44:77: note:   couldn't deduce template parameter '_U1'
   44 |    sarrtime[i][previ[k].second]={arrtime[i][previ[k].second],previ[k].second};
      |                                                                             ^
In file included from /usr/include/c++/10/bits/stl_algobase.h:64,
                 from /usr/include/c++/10/vector:60,
                 from overtaking.h:1,
                 from overtaking.cpp:1:
/usr/include/c++/10/bits/stl_pair.h:430:2: note: candidate: 'template<class _U1, class _U2> typename std::enable_if<std::__and_<std::is_assignable<_T1&, _U1&&>, std::is_assignable<_T2&, _U2&&> >::value, std::pair<_T1, _T2>&>::type std::pair<_T1, _T2>::operator=(std::pair<_U1, _U2>&&) [with _U1 = _U1; _U2 = _U2; _T1 = long long int; _T2 = int]'
  430 |  operator=(pair<_U1, _U2>&& __p)
      |  ^~~~~~~~
/usr/include/c++/10/bits/stl_pair.h:430:2: note:   template argument deduction/substitution failed:
overtaking.cpp:44:77: note:   couldn't deduce template parameter '_U1'
   44 |    sarrtime[i][previ[k].second]={arrtime[i][previ[k].second],previ[k].second};
      |                                                                             ^
overtaking.cpp:48:37: error: no matching function for call to 'std::vector<std::pair<long long int, int> >::push_back(<brace-enclosed initializer list>)'
   48 |    previ.push_back({arrtime[i][k],k});
      |                                     ^
In file included from /usr/include/c++/10/vector:67,
                 from overtaking.h:1,
                 from overtaking.cpp:1:
/usr/include/c++/10/bits/stl_vector.h:1187:7: note: candidate: 'void std::vector<_Tp, _Alloc>::push_back(const value_type&) [with _Tp = std::pair<long long int, int>; _Alloc = std::allocator<std::pair<long long int, int> >; std::vector<_Tp, _Alloc>::value_type = std::pair<long long int, int>]'
 1187 |       push_back(const value_type& __x)
      |       ^~~~~~~~~
/usr/include/c++/10/bits/stl_vector.h:1187:35: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'const value_type&' {aka 'const std::pair<long long int, int>&'}
 1187 |       push_back(const value_type& __x)
      |                 ~~~~~~~~~~~~~~~~~~^~~
/usr/include/c++/10/bits/stl_vector.h:1203:7: note: candidate: 'void std::vector<_Tp, _Alloc>::push_back(std::vector<_Tp, _Alloc>::value_type&&) [with _Tp = std::pair<long long int, int>; _Alloc = std::allocator<std::pair<long long int, int> >; std::vector<_Tp, _Alloc>::value_type = std::pair<long long int, int>]'
 1203 |       push_back(value_type&& __x)
      |       ^~~~~~~~~
/usr/include/c++/10/bits/stl_vector.h:1203:30: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'std::vector<std::pair<long long int, int> >::value_type&&' {aka 'std::pair<long long int, int>&&'}
 1203 |       push_back(value_type&& __x)
      |                 ~~~~~~~~~~~~~^~~
overtaking.cpp:15:15: warning: unused variable 'len' [-Wunused-variable]
   15 |     long long len=L,spd=X;
      |               ^~~
overtaking.cpp:15:21: warning: unused variable 'spd' [-Wunused-variable]
   15 |     long long len=L,spd=X;
      |                     ^~~
overtaking.cpp: In function 'long long int arrival_time(long long int)':
overtaking.cpp:54:8: error: 'arrtime' was not declared in this scope; did you mean 'sarrtime'?
   54 |  int M=arrtime.size()-1;
      |        ^~~~~~~
      |        sarrtime
overtaking.cpp:65:43: error: 'spd' was not declared in this scope; did you mean 'std'?
   65 |   atime[i]=atime[i-1]+(spos[i]-spos[i-1])*spd;
      |                                           ^~~
      |                                           std