Submission #2711038


Source Code Expand

#include <bits/stdc++.h>
#define FOR(i,a,b) for (int i=(a);i<(b);i++)
#define FORR(i,a,b) for (int i=(a);i>=(b);i--)
#define pb push_back
#define pcnt __builtin_popcount
#define show(x) cout<<#x<<" = "<<x<<endl;
#define maxs(x,y) x = max(x,y)
#define mins(x,y) x = min(x,y)
#define fi first
#define se second
#define rng(a) (a.begin()),(a.end())
#define each(it,c) for(__typeof((c).begin()) it=(c).begin();it!=(c).end();it++)
#define sz(x) (int)(x).size()
#define mp make_pair

using namespace std;
typedef long long ll;
typedef pair<int,int> pii;
typedef vector<int> vi;
typedef vector<vi> vvi;
typedef vector<pii> vpii;
typedef set<int> si;
typedef pair<ll,ll> pll;
typedef vector<ll> vl;
typedef vector<vl> vvl;
typedef vector<pll> vpll;
typedef set<ll> sl;
typedef __int128_t lll;
typedef pair<lll,lll> plll;
typedef vector<lll> vlll;
template<typename T>string join(vector<T>&v)
{stringstream s;FOR(i,0,sz(v))s<<' '<<v[i];return s.str().substr(1);}
template<typename A, size_t N, typename T>void Fill(A (&array)[N], const T&v)
{fill((T*)array,(T*)(array+N),v);}
template<typename T> T gcd(T a,T b){if(a>b)swap(a,b);for(;a>0;b%=a,swap(a,b));return b;}
ll modpow(lll a,lll n,ll m){if(a==0)return a;lll p=1;for(;n>0;n/=2,a=a*a%m)if(n&1)p=p*a%m;return(ll)p;}
void dout(double d){printf("%.12f\n",d);}

const int iinf = 1e9;
const ll linf = 1e18;
const int mod = 1e9+7;
const double pi = acos(-1);
const double eps = 1e-10;
int n, k, q, a[2005];
vi v, vv;
bool b[2005];
map<int, vi> m;

main(){
  cin.tie(0);
  ios::sync_with_stdio(false);
  cin >> n >> k >> q;
  FOR(i, 0, n){
    cin >> a[i];
    if(m.find(a[i]) == m.end()) m[a[i]] = vi();
    m[a[i]].pb(i);
  }
  b[n] = true;
  int ans = iinf;
  each(itr, m){
    v.resize(0);
    vv.resize(0);
    int c = 0;
    FOR(i, 0, n+1){
      if(b[i]){
        if(i - c >= k){
          sort(rng(vv));
          FOR(j, 0, i-c-k+1) v.pb(vv[j]);
        }
        vv.resize(0);
        c = i+1;
      }else{
        vv.pb(a[i]);
      }
    }
    if(sz(v) < q) break;
    sort(rng(v));
    if(v[0] == itr->fi) mins(ans, v[q-1] - itr->fi);
    each(itrr, itr->se) b[*itrr] = true;
  }
  cout << ans << endl;
  return 0;
}

Submission Info

Submission Time
Task E - Range Minimum Queries
User char134217728
Language C++14 (GCC 5.4.1)
Score 600
Code Size 2250 Byte
Status AC
Exec Time 86 ms
Memory 512 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 600 / 600
Status
AC × 3
AC × 54
Set Name Test Cases
Sample sample_01.txt, sample_02.txt, sample_03.txt
All sample_01.txt, sample_02.txt, sample_03.txt, sample_01.txt, sample_02.txt, sample_03.txt, subtask_1_01.txt, subtask_1_02.txt, subtask_1_03.txt, subtask_1_04.txt, subtask_1_05.txt, subtask_1_06.txt, subtask_1_07.txt, subtask_1_08.txt, subtask_1_09.txt, subtask_1_10.txt, subtask_1_11.txt, subtask_1_12.txt, subtask_1_13.txt, subtask_1_14.txt, subtask_1_15.txt, subtask_1_16.txt, subtask_1_17.txt, subtask_1_18.txt, subtask_1_19.txt, subtask_1_20.txt, subtask_1_21.txt, subtask_1_22.txt, subtask_1_23.txt, subtask_1_24.txt, subtask_1_25.txt, subtask_1_26.txt, subtask_1_27.txt, subtask_1_28.txt, subtask_1_29.txt, subtask_1_30.txt, subtask_1_31.txt, subtask_1_32.txt, subtask_1_33.txt, subtask_1_34.txt, subtask_1_35.txt, subtask_1_36.txt, subtask_1_37.txt, subtask_1_38.txt, subtask_1_39.txt, subtask_1_40.txt, subtask_1_41.txt, subtask_1_42.txt, subtask_1_43.txt, subtask_1_44.txt, subtask_1_45.txt, subtask_1_46.txt, subtask_1_47.txt, subtask_1_48.txt
Case Name Status Exec Time Memory
sample_01.txt AC 1 ms 256 KB
sample_02.txt AC 1 ms 256 KB
sample_03.txt AC 1 ms 256 KB
subtask_1_01.txt AC 1 ms 256 KB
subtask_1_02.txt AC 1 ms 256 KB
subtask_1_03.txt AC 34 ms 512 KB
subtask_1_04.txt AC 2 ms 256 KB
subtask_1_05.txt AC 1 ms 256 KB
subtask_1_06.txt AC 2 ms 384 KB
subtask_1_07.txt AC 22 ms 512 KB
subtask_1_08.txt AC 2 ms 512 KB
subtask_1_09.txt AC 14 ms 384 KB
subtask_1_10.txt AC 1 ms 256 KB
subtask_1_11.txt AC 8 ms 512 KB
subtask_1_12.txt AC 82 ms 512 KB
subtask_1_13.txt AC 34 ms 512 KB
subtask_1_14.txt AC 7 ms 512 KB
subtask_1_15.txt AC 20 ms 512 KB
subtask_1_16.txt AC 2 ms 512 KB
subtask_1_17.txt AC 20 ms 512 KB
subtask_1_18.txt AC 84 ms 512 KB
subtask_1_19.txt AC 86 ms 512 KB
subtask_1_20.txt AC 58 ms 512 KB
subtask_1_21.txt AC 82 ms 512 KB
subtask_1_22.txt AC 2 ms 512 KB
subtask_1_23.txt AC 16 ms 384 KB
subtask_1_24.txt AC 30 ms 384 KB
subtask_1_25.txt AC 8 ms 384 KB
subtask_1_26.txt AC 8 ms 384 KB
subtask_1_27.txt AC 3 ms 384 KB
subtask_1_28.txt AC 2 ms 384 KB
subtask_1_29.txt AC 26 ms 512 KB
subtask_1_30.txt AC 1 ms 256 KB
subtask_1_31.txt AC 8 ms 512 KB
subtask_1_32.txt AC 17 ms 512 KB
subtask_1_33.txt AC 2 ms 512 KB
subtask_1_34.txt AC 2 ms 512 KB
subtask_1_35.txt AC 3 ms 512 KB
subtask_1_36.txt AC 2 ms 512 KB
subtask_1_37.txt AC 13 ms 512 KB
subtask_1_38.txt AC 2 ms 512 KB
subtask_1_39.txt AC 9 ms 512 KB
subtask_1_40.txt AC 2 ms 512 KB
subtask_1_41.txt AC 2 ms 384 KB
subtask_1_42.txt AC 2 ms 384 KB
subtask_1_43.txt AC 2 ms 384 KB
subtask_1_44.txt AC 2 ms 384 KB
subtask_1_45.txt AC 4 ms 512 KB
subtask_1_46.txt AC 1 ms 256 KB
subtask_1_47.txt AC 2 ms 512 KB
subtask_1_48.txt AC 2 ms 512 KB