Submission
Status:
(PPPPPPPPP-SSS)(TSSSSSSSS)(PPPPPPPPPP)(-SSSSSSSSS)(-SSSSSSSSSSSSS)(-SSSSSSSSSSSSSSSSSS)(-SSSSSSSSSSSSSSSSSSSSS)
Subtask/Task Score:
{0/4}{0/4}{5/5}{0/7}{0/25}{0/34}{0/21}
Score: 5
User: kungarooo
Problemset: ร้านปลอดภาษี (Duty Free)
Language: cpp
Time: 1.091 second
Submitted On: 2025-11-01 22:53:01
#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(own[u]);
if(own[u]==0){
ans++;
reset();
}
own[u]=par(own[u]-1);
}
return ans;
}