Submission #1203634

#TimeUsernameProblemLanguageResultExecution timeMemory
1203634rafsanamin2020Bouquet (EGOI24_bouquet)C++20
0 / 100
23 ms4224 KiB
#include <bits/stdc++.h>
#define l first
#define r second

using namespace std;

int solve1()
{
  int K;
  vector<pair<int, int>> Q;
  cin >> K;
  for (int i = 0; i < K; i++)
  {
    int L, R;
    cin >> L >> R;
    Q.push_back({L, R});
  }

  int v = Q[0].l;

  ++v;
  return (K / v) + (K % v == 0 ? 0 : 1);
}

int amnt(int f, int i, int off)
{
  if (i + 1 > off + i)
  {
    return f + 1;
  }
  return f;
}

int solve2()
{
  int K;
  vector<pair<int, int>> Q;
  cin >> K;
  vector<int> dp(K, 1);
  for (int i = 0; i < K; i++)
  {
    int L, R;
    cin >> L >> R;
    Q.push_back({L, R});
  }
  reverse(Q.begin(), Q.end());

  for (int i = 0; i < K; i++)
  {
    int idx = i + Q[i].l + 1;

    if (i > 0)
      dp[i] = max(dp[i], dp[i - 1]);

    if (idx < K)
    {
      dp[idx] = dp[i] + 1;
    }
  }

  for (int x : dp)
  {
    cout << x << " ";
  }

  return dp[K - 1];
}

int main()
{
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);

  cout << solve2();
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...