Submission #35554024


Source Code Expand

#include <bits/stdc++.h>
using namespace std;
#define rep(i,a,n) for (int i=a;i<(int)n;i++)
template <typename T> using minPQ = priority_queue<T,vector<T>, greater<T>>; // 小根堆
int read(){int r;scanf("%d",&r);return r;}

vector<int> calc(vector<pair<int,bool>>&A,int del){ // {value, free del?}
  vector<int> ret={};
  minPQ<pair<int,int>> vi; // value,index
  int li=0;
  int ri=-1; // [li..ri] 中选择最小的一个作为剩余的头
  auto moveri=[&](int d){
    while(d>=0) {
      if(++ri>=(int)A.size())break;
      if(!A[ri].second)d--;// not free d
      vi.push({A[ri].first,ri});
    }
  };
  moveri(del);
  while(ri<(int)A.size()){
    auto [v,i]=vi.top();
    vi.pop();
    if(i<li)continue;
    // use A[i], [li...i...ri] => [i+1..ri+(1/0)]
    ret.push_back(v);
    li=i+1;
    if(!A[i].second)moveri(0);
  }
  return ret;
}

void p(const vector<int>&A){rep(i,0,A.size())printf("%d%c",A[i]," \n"[i+1==(int)A.size()]);}
int le(const vector<int>&A,const vector<int>&B){ // less equal
  int n = min(A.size(),B.size());
  rep(i,0,n)if(A[i]!=B[i]) return A[i]<B[i];
  return A.size()<B.size();
}

int main(){
  int n = read();
  vector<int>a(n);
  int k = read();
  rep(i,0,n) a[i]=read();
  if(k==0){
    p(a);
    return 0;
  }
  // left del
  int li=0;
  rep(i,0,k+1)if(a[i]<a[li])li=i;
  vector<pair<int,bool>>al={};
  rep(i,li,n)al.push_back({a[i],false});
  auto ansl=calc(al,k-li);
  // right move
  int ri=n-1;
  rep(i,0,k) if(a[n-1-i]<a[ri])ri=n-1-i;
  vector<pair<int,bool>>ar={};
  rep(i,0,n)ar.push_back({a[(ri+i)%n],ri+i<n});
  auto ansr=calc(ar,k-(n-ri));
  p(le(ansl,ansr)?ansl:ansr);
  return 0;
}

Submission Info

Submission Time
Task F - Erase and Rotate
User cromarmot
Language C++ (GCC 9.2.1)
Score 500
Code Size 1631 Byte
Status AC
Exec Time 81 ms
Memory 10440 KiB

Compile Error

./Main.cpp: In function ‘int read()’:
./Main.cpp:5:23: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
    5 | int read(){int r;scanf("%d",&r);return r;}
      |                  ~~~~~^~~~~~~~~

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 500 / 500
Status
AC × 3
AC × 47
Set Name Test Cases
Sample 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt
All 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt, 01_sall_00.txt, 01_sall_01.txt, 01_sall_02.txt, 01_sall_03.txt, 01_sall_04.txt, 01_sall_05.txt, 01_sall_06.txt, 01_sall_07.txt, 01_sall_08.txt, 01_sall_09.txt, 01_sall_10.txt, 01_sall_11.txt, 01_sall_12.txt, 01_sall_13.txt, 01_sall_14.txt, 02_rnd_00.txt, 02_rnd_01.txt, 02_rnd_02.txt, 02_rnd_03.txt, 02_rnd_04.txt, 02_rnd_05.txt, 02_rnd_06.txt, 02_rnd_07.txt, 03_inc_00.txt, 03_inc_01.txt, 03_inc_02.txt, 03_inc_03.txt, 03_inc_04.txt, 03_inc_05.txt, 03_inc_06.txt, 03_inc_07.txt, 03_inc_08.txt, 04_dec_00.txt, 04_dec_01.txt, 04_dec_02.txt, 04_dec_03.txt, 04_dec_04.txt, 04_dec_05.txt, 04_dec_06.txt, 04_dec_07.txt, 04_dec_08.txt, 05_hand_00.txt, 05_hand_01.txt, 05_hand_02.txt
Case Name Status Exec Time Memory
00_sample_00.txt AC 8 ms 3668 KiB
00_sample_01.txt AC 2 ms 3720 KiB
00_sample_02.txt AC 2 ms 3672 KiB
01_sall_00.txt AC 1 ms 3544 KiB
01_sall_01.txt AC 2 ms 3492 KiB
01_sall_02.txt AC 2 ms 3560 KiB
01_sall_03.txt AC 2 ms 3504 KiB
01_sall_04.txt AC 2 ms 3588 KiB
01_sall_05.txt AC 2 ms 3512 KiB
01_sall_06.txt AC 1 ms 3548 KiB
01_sall_07.txt AC 2 ms 3540 KiB
01_sall_08.txt AC 2 ms 3716 KiB
01_sall_09.txt AC 2 ms 3564 KiB
01_sall_10.txt AC 2 ms 3512 KiB
01_sall_11.txt AC 2 ms 3544 KiB
01_sall_12.txt AC 2 ms 3688 KiB
01_sall_13.txt AC 2 ms 3720 KiB
01_sall_14.txt AC 2 ms 3680 KiB
02_rnd_00.txt AC 65 ms 9120 KiB
02_rnd_01.txt AC 57 ms 9500 KiB
02_rnd_02.txt AC 69 ms 9232 KiB
02_rnd_03.txt AC 66 ms 9608 KiB
02_rnd_04.txt AC 77 ms 10336 KiB
02_rnd_05.txt AC 81 ms 10376 KiB
02_rnd_06.txt AC 62 ms 9328 KiB
02_rnd_07.txt AC 61 ms 9172 KiB
03_inc_00.txt AC 58 ms 10072 KiB
03_inc_01.txt AC 59 ms 9748 KiB
03_inc_02.txt AC 55 ms 9776 KiB
03_inc_03.txt AC 62 ms 9780 KiB
03_inc_04.txt AC 61 ms 9748 KiB
03_inc_05.txt AC 57 ms 9912 KiB
03_inc_06.txt AC 62 ms 10176 KiB
03_inc_07.txt AC 60 ms 10136 KiB
03_inc_08.txt AC 57 ms 9552 KiB
04_dec_00.txt AC 58 ms 10044 KiB
04_dec_01.txt AC 57 ms 10080 KiB
04_dec_02.txt AC 56 ms 10180 KiB
04_dec_03.txt AC 60 ms 9996 KiB
04_dec_04.txt AC 58 ms 10252 KiB
04_dec_05.txt AC 58 ms 9872 KiB
04_dec_06.txt AC 61 ms 9868 KiB
04_dec_07.txt AC 60 ms 9912 KiB
04_dec_08.txt AC 62 ms 9908 KiB
05_hand_00.txt AC 56 ms 9608 KiB
05_hand_01.txt AC 58 ms 9604 KiB
05_hand_02.txt AC 65 ms 10440 KiB