Submission #1008644

#TimeUsernameProblemLanguageResultExecution timeMemory
1008644aaaaaarrozOvertaking (IOI23_overtaking)C++17
Compilation error
0 ms0 KiB
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int l, n, m, x;
vector<ll>t;  
vector<ll>W;  
vector<ll>s;  
vector<vector<pair<ll, ll>>>time(1089,vector<pair<ll,ll>>());
vector<vector<ll>>dp(1089,vector<ll>(1089));
void init(int L,int N,vector<ll>T,vector<int>w,int X,int M,vector<int>S) {
    l=L;
    n=N;
    m=M;
    x=X;
    for (int i=0;i<1009;i++) {
       time[i].clear();
    }
    for (int i=0;i<N;i++) {
        if (w[i]>x) {
            W.push_back(w[i]);
            t.push_back(T[i]);
        }
    }
    for (int i=0;i<M-1;i++) {
        s.push_back(S[i+1]-S[i]);
    }
    n=t.size();
    for (int i=0;i<N;i++) {
        dp[i][0]=t[i];
    }
    for (int j=1;j<m;j++) {
        vector<pair<ll,ll>>x;
        for (int i=0;i<N;i++){
            x.push_back(make_pair(dp[i][j-1],i));
		}
        sort(x.begin(),x.end());
        ll mx=0,mx2=0;
        time[j].push_back(make_pair(-1,0));
        for (int i=0;i<N;i++) {
            if (i!=0&&x[i].first>x[i-1].first) {
                mx=max(mx,mx2);
            }
            int v=x[i].second;
            dp[v][j]=max(mx,dp[v][j-1]+W[v]*s[j-1]);
            mx2=max(mx2,dp[v][j]);
            time[j].push_back(make_pair(x[i].first,max(mx,mx2)));
        }
    }
}
ll arrival_time(ll arriva) {
    ll cur=arrival;
    for (int i=1;i<m;i++) {
        int idx=lower_bound(time[i].begin(),time[i].end(),{cur,-1})-time[i].begin()-1;
        cur=max(cur+s[i-1]*x,time[i][idx].second);
    }
    return cur;
}

Compilation message (stderr)

overtaking.cpp:8:33: error: 'std::vector<std::vector<std::pair<long long int, long long int> > > time' redeclared as different kind of entity
    8 | vector<vector<pair<ll, ll>>>time(1089,vector<pair<ll,ll>>());
      |                                 ^
In file included from /usr/include/c++/10/ctime:42,
                 from /usr/include/x86_64-linux-gnu/c++/10/bits/stdc++.h:49,
                 from overtaking.cpp:1:
/usr/include/time.h:75:15: note: previous declaration 'time_t time(time_t*)'
   75 | extern time_t time (time_t *__timer) __THROW;
      |               ^~~~
overtaking.cpp: In function 'void init(int, int, std::vector<long long int>, std::vector<int>, int, int, std::vector<int>)':
overtaking.cpp:16:14: warning: pointer to a function used in arithmetic [-Wpointer-arith]
   16 |        time[i].clear();
      |              ^
overtaking.cpp:16:16: error: request for member 'clear' in '*(time + ((sizetype)i))', which is of non-class type 'time_t(time_t*) noexcept' {aka 'long int(long int*) noexcept'}
   16 |        time[i].clear();
      |                ^~~~~
overtaking.cpp:38:15: warning: pointer to a function used in arithmetic [-Wpointer-arith]
   38 |         time[j].push_back(make_pair(-1,0));
      |               ^
overtaking.cpp:38:17: error: request for member 'push_back' in '*(time + ((sizetype)j))', which is of non-class type 'time_t(time_t*) noexcept' {aka 'long int(long int*) noexcept'}
   38 |         time[j].push_back(make_pair(-1,0));
      |                 ^~~~~~~~~
overtaking.cpp:46:19: warning: pointer to a function used in arithmetic [-Wpointer-arith]
   46 |             time[j].push_back(make_pair(x[i].first,max(mx,mx2)));
      |                   ^
overtaking.cpp:46:21: error: request for member 'push_back' in '*(time + ((sizetype)j))', which is of non-class type 'time_t(time_t*) noexcept' {aka 'long int(long int*) noexcept'}
   46 |             time[j].push_back(make_pair(x[i].first,max(mx,mx2)));
      |                     ^~~~~~~~~
overtaking.cpp: In function 'll arrival_time(ll)':
overtaking.cpp:51:12: error: 'arrival' was not declared in this scope; did you mean 'arriva'?
   51 |     ll cur=arrival;
      |            ^~~~~~~
      |            arriva
overtaking.cpp:53:35: warning: pointer to a function used in arithmetic [-Wpointer-arith]
   53 |         int idx=lower_bound(time[i].begin(),time[i].end(),{cur,-1})-time[i].begin()-1;
      |                                   ^
overtaking.cpp:53:37: error: request for member 'begin' in '*(time + ((sizetype)i))', which is of non-class type 'time_t(time_t*) noexcept' {aka 'long int(long int*) noexcept'}
   53 |         int idx=lower_bound(time[i].begin(),time[i].end(),{cur,-1})-time[i].begin()-1;
      |                                     ^~~~~
overtaking.cpp:53:51: warning: pointer to a function used in arithmetic [-Wpointer-arith]
   53 |         int idx=lower_bound(time[i].begin(),time[i].end(),{cur,-1})-time[i].begin()-1;
      |                                                   ^
overtaking.cpp:53:53: error: request for member 'end' in '*(time + ((sizetype)i))', which is of non-class type 'time_t(time_t*) noexcept' {aka 'long int(long int*) noexcept'}
   53 |         int idx=lower_bound(time[i].begin(),time[i].end(),{cur,-1})-time[i].begin()-1;
      |                                                     ^~~
overtaking.cpp:53:75: warning: pointer to a function used in arithmetic [-Wpointer-arith]
   53 |         int idx=lower_bound(time[i].begin(),time[i].end(),{cur,-1})-time[i].begin()-1;
      |                                                                           ^
overtaking.cpp:53:77: error: request for member 'begin' in '*(time + ((sizetype)i))', which is of non-class type 'time_t(time_t*) noexcept' {aka 'long int(long int*) noexcept'}
   53 |         int idx=lower_bound(time[i].begin(),time[i].end(),{cur,-1})-time[i].begin()-1;
      |                                                                             ^~~~~
overtaking.cpp:54:36: warning: pointer to a function used in arithmetic [-Wpointer-arith]
   54 |         cur=max(cur+s[i-1]*x,time[i][idx].second);
      |                                    ^
overtaking.cpp:54:41: warning: pointer to a function used in arithmetic [-Wpointer-arith]
   54 |         cur=max(cur+s[i-1]*x,time[i][idx].second);
      |                                         ^
overtaking.cpp:54:43: error: request for member 'second' in '*(time + (((sizetype)i) + ((sizetype)idx)))', which is of non-class type 'time_t(time_t*) noexcept' {aka 'long int(long int*) noexcept'}
   54 |         cur=max(cur+s[i-1]*x,time[i][idx].second);
      |                                           ^~~~~~