Submission

Status:

(PPPPP-SSSSSSS)(PPPPPPPPP)(-SSSSSSSSS)(-SSSSSSSSS)(PP-SSSSSSSSSSS)(PP-SSSSSSSSSSSSSSSS)(xSSSSSSSSSSSSSSSSSSSSS)

Subtask/Task Score:

{0/4}{4/4}{0/5}{0/7}{0/25}{0/34}{0/21}

Score: 4

User: hyyh

Problemset: ร้านปลอดภาษี (Duty Free)

Language: cpp

Time: 0.580 second

Submitted On: 2026-03-14 19:32:20

#include <vector>
#include <queue>
#include <iostream>

using namespace std;

// you can write more function here

int minimum_bag_rearrangement_time(std::vector<int> max_allowed_positions) {
  int N = max_allowed_positions.size();
  vector<queue<int>> vc(N);
  for(int i{};i < N;i++) vc[max_allowed_positions[i]-1].emplace(i);
  int ans = 0;
  while(true){
    ans++;
    int cur = 0;
    bool find = true;
    for(int i{};i < N;i++){
      if(cur < i) cur = i;
      while(cur < N && vc[cur].empty()) cur++;
      if(cur >= N) break;
      vc[cur].pop();
      find = false;
    }
    if(find) break;
  }
  return ans-2;
}