1 #define pb push_back
2 class Solution {
3 public:
4 int minimumSum(int num) {
5 vector<int> p;
6 while(num){
7 p.pb(num%10),num/=10;
8 }
9 sort(p.begin(),p.end());
10 int res=p[0]*10+p[2]+p[1]*10+p[3];
11 return res;
12 }
13 };//2239
1 #define pb push_back
2 class Solution {
3 public:
4 vector<int> pivotArray(vector<int>& nums, int pivot) {
5 vector<int> ans;
6 for(auto i:nums){
7 if(i<pivot) ans.pb(i);
8 }
9 for(auto i:nums){
10 if(i==pivot) ans.pb(i);
11 }
12 for(auto i:nums){
13 if(i>pivot) ans.pb(i);
14 }
15 return ans;
16 }
17 };
1 const int inf = 0x3f3f3f3f;
2 class Solution {
3 public:
4 int minCostSetTime(int startAt, int moveCost, int pushCost, int targetSeconds) {
5 int ans=inf;
6 vector<int> p;
7 for(int i=0;i<=99;i++){ // 枚举秒
8 if((targetSeconds-i)%60==0&&i<=targetSeconds){
9 int res=(targetSeconds-i)/60;
10 if(res>99) continue;
11 int a=res,b=i;
12 // cout<<"("<<a<<" "<<b<<"):";
13 p.clear();
14
15 while(b) p.push_back(b%10),b/=10;
16 while(p.size()<2) p.push_back(0);
17 while(a) p.push_back(a%10),a/=10;
18 reverse(p.begin(),p.end());
19
20 // for(auto k:p) cout<<k<<" ";cout<<"over";
21 int st = startAt;
22 int num=0,f=1;
23 for(int j=0;j<p.size();j++){
24 if(f){
25 if(p[j]){
26 f=0;
27 }else{
28 continue;
29 }
30 }
31 if(p[j]==st){
32 num+=pushCost;
33 }else{
34 num+=moveCost+pushCost;
35 st=p[j];
36 }
37 }
38 ans=min(ans,num);
39 // cout<<num<<endl;
40 }
41 }
42 return ans;
43 }
44 };
1 const int N = 2e6+100 ;
2 typedef long long ll;
3 #define pb push_back
4 priority_queue<int,vector<int>,less<int> > q;
5 priority_queue<int,vector<int>,greater<int> > p;
6 ll a[N],b[N];
7 class Solution {
8 public:
9 long long minimumDifference(vector<int>& nums){
10 while(q.size()) q.pop();
11 while(p.size()) p.pop();
12 int m=nums.size();int n=m/3;
13 ll s=0;
14 for(int i=0;i<n;i++) q.push(nums[i]),s+=nums[i];
15 a[n-1]=s;
16 for(int i=n;i<m;i++){
17 if(nums[i]<q.top()){
18 s-=q.top();
19 s+=nums[i];
20 q.pop();
21 q.push(nums[i]);
22 }
23 a[i]=s;
24 }
25 s=0;
26 for(int i=m-1;i>=m-n;i--) p.push(nums[i]),s+=nums[i];
27 b[m-n]=s;
28 for(int i=m-n-1;i>=0;i--){
29 if(nums[i]>p.top()){
30 s-=p.top();
31 s+=nums[i];
32 p.pop();
33 p.push(nums[i]);
34 }
35 b[i]=s;
36 }
37 ll ans=a[n-1]-b[n];
38 for(int i=n;i<2*n;i++){
39 ans=min(ans,a[i]-b[i+1]);
40 }
41 return ans;
42 }
43 };