Submission #5374977


Source Code Expand

#include <bits/stdc++.h>
using namespace std;

#define int long long

int N, K;
vector<int> a, v;

bool check(int mid) {
  int cnt = 0;
  mid++;
  for (int i = 0; i < N; i++) {
    if (v[i] % mid == 0) {
      cnt++;
    }
  }

  return cnt <= K;
}

// 二分探索
int bin() {
  int ok = N + 10;
  int ng = 0; // -1だとcheck()関数で受け切れないので死ぬ
  while (ok - ng > 1) {
    int mid = (ok + ng) / 2;
    if (check(mid)) {
      ok = mid;
    } else {
      ng = mid;
    }
  }

  return ok;
}

signed main() {
  cin >> N >> K;
  a.resize(N);
  for (int i = 0; i < N; i++) {
    cin >> a[i];
  }

  // 何個連続してるかっていう配列を作る
  int old = a[0];
  int cnt = 0;
  for (int i = 0; i < N; i++) {
    if (a[i] == old) {
      cnt++;
    } else {
      old = a[i];
      cnt = 1;
    }
    v.push_back(cnt);
  }

  int ans = bin();

  cout << ans << endl;

  return 0;
}

Submission Info

Submission Time
Task D - Boring Sequence
User nomi
Language C++14 (GCC 5.4.1)
Score 400
Code Size 973 Byte
Status AC
Exec Time 100 ms
Memory 3956 KiB

Judge Result

Set Name all sample
Score / Max Score 400 / 400 0 / 0
Status
AC × 32
AC × 3
Set Name Test Cases
all sample01, sample02, sample03, test01, test02, test03, test04, test05, test06, test07, test08, test09, test10, test11, test12, test13, test14, test15, test16, test17, test18, test19, test20, test21, test22, test23, test24, test25, test26, test27, test28, test29
sample sample01, sample02, sample03
Case Name Status Exec Time Memory
sample01 AC 1 ms 256 KiB
sample02 AC 1 ms 256 KiB
sample03 AC 1 ms 256 KiB
test01 AC 1 ms 256 KiB
test02 AC 2 ms 256 KiB
test03 AC 2 ms 256 KiB
test04 AC 1 ms 256 KiB
test05 AC 33 ms 1912 KiB
test06 AC 84 ms 3828 KiB
test07 AC 9 ms 768 KiB
test08 AC 62 ms 3444 KiB
test09 AC 30 ms 1912 KiB
test10 AC 68 ms 3572 KiB
test11 AC 48 ms 2168 KiB
test12 AC 58 ms 2424 KiB
test13 AC 97 ms 3956 KiB
test14 AC 95 ms 3956 KiB
test15 AC 98 ms 3956 KiB
test16 AC 96 ms 3956 KiB
test17 AC 81 ms 3956 KiB
test18 AC 94 ms 3956 KiB
test19 AC 95 ms 3956 KiB
test20 AC 97 ms 3956 KiB
test21 AC 95 ms 3956 KiB
test22 AC 98 ms 3956 KiB
test23 AC 95 ms 3956 KiB
test24 AC 100 ms 3956 KiB
test25 AC 95 ms 3956 KiB
test26 AC 100 ms 3956 KiB
test27 AC 97 ms 3956 KiB
test28 AC 98 ms 3956 KiB
test29 AC 1 ms 256 KiB