Submission

Status:

(PPPPPPPPPPPPP)(TSSSSSSSS)(PPPPPPPPPP)(PPPPPPPPPP)(PPPPPPPPPPPPPP)(PPPPPPPPPTSSSSSSSSS)(PPPPPPPPTSSSSSSSSSSSSS)

Subtask/Task Score:

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

Score: 41

User: kungarooo

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

Language: cpp

Time: 1.097 second

Submitted On: 2025-11-01 23:13:13

#include <bits/stdc++.h>
using namespace std;
// you can write more function here

int own[2000001]={};//to where
int par(int idx){
    if(own[idx]==idx)return idx;
    own[idx]=par(own[idx]);
    return own[idx];
}
void reset(){
    for(int i=0;i<=2000000;i++){
        own[i]=i;
    }
}
int minimum_bag_rearrangement_time(vector<int> max_allowed_positions) {
  int sz=max_allowed_positions.size(),ans=0;
  //set<int> eridx;
  for(int i=0;i<=sz;i++){
    own[i]=i;
  }
  for(int i=0;i<sz;i++){
    int u=max_allowed_positions[i];
    par(u);
    if(own[u]==0){
      //cout<<i<<":\n";
        ans++;
        reset();
    }
    own[own[u]]=par(own[u]-1);
  }
  return ans;
}