#include "overtaking.h"
#include <bits/stdc++.h>
using namespace std;
vector<pair<long long, long long>> v[1005];
long long x, mm;
vector<long long> ss;
void init(int erk, int n, vector<long long> t, vector<int> w, int xx, int m, vector<int> s)
{
   for (int i = 0; i < s.size(); i++)
   {
      ss.push_back(s[i]);
   }
    x = xx;
    mm = m;
    int i;
    for ( i = 0; i < n; i++)
    {
        v[0].push_back({t[i], w[i]});
    }
    sort(v[0].begin(), v[0].end());
    for ( i = 0; i < m; i++)
    {
        if(i == 0)
        {
            v[1].push_back({s[1] * v[0][i].second + v[0][i].first, v[0][i].second});
        }
        else
        {
            v[1].push_back({max(s[1] * v[0][i].second + v[0][i].first, v[1].back().first), v[0][i].second});
        }
    }
    for (int h = 1; h < m; h++)
    {
        sort(v[h].begin(), v[h].end());
        for ( i = 0; i < m; i++)
        {   
            if(i == 0)
            {
                v[h + 1].push_back({(s[h + 1] - s[h]) * v[h][i].second + v[h][i].first, v[h][i].second});
            }
            else
            {
                v[h + 1].push_back({max((s[h + 1] - s[h]) * v[h][i].second + v[h][i].first, v[h + 1].back().first), v[h][i].second});
            }
        }   
    }
}
    
long long arrival_time(long long y)
{
    long long yntac = y;    
    for (int i = 0; i < mm - 1; i++)
    {
        int ind = lower_bound(v[i].begin(), v[i].end(), make_pair(yntac, x)) - v[i].begin() - 1;
        yntac = yntac + (ss[i + 1] - ss[i]) * x;
        if(ind >= 0)
            yntac = max(yntac, v[i + 1][ind].first);
    }
    return yntac;
}
| # | 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... |