#include "overtaking.h"
#include <bits/stdc++.h>
#define ll long long
#define dbg(x) cerr << #x << ' ' << x << endl;
using namespace std;
ll l;
ll n;
vector<ll> t;
vector<int> w;
ll x, m;
vector<int> s;
vector<vector<ll>> p;
vector<vector<vector<ll>>> v;
void init(int L, int N, std::vector<long long> T, std::vector<int> W, int X, int M, std::vector<int> S)
{
    p.assign(M,vector<ll>(N));
    v.resize(M);
    
    l=L;
    n=N;
    t=T;
    w=W;
    x=X;
    m=M;
    s=S;
    // for (int i=0;i<n;i++)
    // {   
    //    vector<ll> tr={t[i],(ll)((s[1]-s[0])*W[i]),(ll)i};
    //     v[0].push_back(tr);
    // }
    // sort(v[0].begin(),v[0].end());
    // for (int i=0;i<n;i++)
    // {
    //     if(i==0) p[0][i]=v[0][i][1];
    //     else p[0][i]=max(v[0][i][1],p[0][i-1]);
    // }
    // for (int i=0;i<m-1;i++)
    // {
    //     sort(v[i].begin(), v[i].end());
    //     ll lst=0;
    //     for (int j=0;j<v[i].size();j++)
    //     {
    //         ll e=(s[i+1]-s[i])*w[v[i][j].back()]+v[i][j][0];
    //         v[i][j][1]=e;
    //         if(j!=0 && v[i][j][0]!=v[i][j-1][0])
    //         {
    //             lst=p[i][j-1];
    //         }
    //         v[i+1].push_back({max(e,lst),-1,v[i][j].back()});
    //         p[i][j]=max(e,p[i][j-1+(j==0)]);
    //     }
    // }
    return;
}
long long arrival_time(long long Y)
{
    ll curt=Y;
    ll cur2=t[0];
    for (int i=0;i<m-1;i++)
    {
        ll e=curt+(ll)(s[i+1]-s[i])*x;
        ll e2=cur2+(ll)(s[i+1]-s[i])*w[0];
        if(curt<cur2)e2=max(e2,e);
        else if(curt>cur2) e=max(e,e2);
        curt=e;
        cur2=e2;
    }
    return curt;
}
  // ll ind=lower_bound(v[i].begin(),v[i].end(),vector<ll>({curt,0,0}))-v[i].begin()-1;
        // if(ind>=0)
        // {
        //     e=max(e,p[i][ind]);
        // }
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... |