提出 #47027775


ソースコード 拡げる

#include <iostream>
#include <vector>
#include <map>
#include <algorithm>

using namespace std;

int main()
{
  unsigned long n, m;
  cin >> n >> m;
  map<unsigned long, unsigned long> presents;
  vector<unsigned long> pidx;

  for (unsigned long i = 0; i < n; i++)
  {
    unsigned long a = 0;
    cin >> a;
    if (presents.count(a) == 0)
    {
      presents[a] = 1;
      pidx.push_back(a);
    }
    else
    {
      presents[a]++;
    }
  }

  sort(pidx.begin(), pidx.end());

  unsigned long ans = 0;
  unsigned long remain = n;
  unsigned long prev = 0;
  unsigned long last_pidx = 0;
  for (unsigned long i = 0; i < pidx.size(); i++)
  {
    if (remain < ans)
    {
      break;
    }

    unsigned long ans_tmp = 0;
    if (i == 0)
    {
      for (unsigned long ii = i; ii < pidx.size(); ii++)
      {
        if (pidx[ii] >= pidx[i] + m)
        {
          break;
        }
        ans_tmp += presents[pidx[ii]];
        last_pidx = ii;
      }
    }
    else
    {
      ans_tmp = prev - presents[pidx[i - 1]];
      for (unsigned long ii = last_pidx + 1; ii < pidx.size(); ii++)
      {
        if (pidx[ii] >= pidx[i] + m)
        {
          break;
        }
        ans_tmp += presents[pidx[ii]];
        last_pidx = ii;
      }
    }

    prev = ans_tmp;

    if (ans_tmp > ans)
    {
      ans = ans_tmp;
    }
    remain -= presents[pidx[i]];
  }

  cout << ans << endl;
}

提出情報

提出日時
問題 C - Peak
ユーザ michimani
言語 C++ 20 (Clang 16.0.6)
得点 300
コード長 1472 Byte
結果 AC
実行時間 406 ms
メモリ 24468 KiB

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 300 / 300
結果
AC × 3
AC × 36
セット名 テストケース
Sample sample_01.txt, sample_02.txt, sample_03.txt
All sample_01.txt, sample_02.txt, sample_03.txt, test_01.txt, test_02.txt, test_03.txt, test_04.txt, test_05.txt, test_06.txt, test_07.txt, test_08.txt, test_09.txt, test_10.txt, test_11.txt, test_12.txt, test_13.txt, test_14.txt, test_15.txt, test_16.txt, test_17.txt, test_18.txt, test_19.txt, test_20.txt, test_21.txt, test_22.txt, test_23.txt, test_24.txt, test_25.txt, test_26.txt, test_27.txt, test_28.txt, test_29.txt, test_30.txt, test_31.txt, test_32.txt, test_33.txt
ケース名 結果 実行時間 メモリ
sample_01.txt AC 1 ms 3548 KiB
sample_02.txt AC 1 ms 3444 KiB
sample_03.txt AC 1 ms 3624 KiB
test_01.txt AC 1 ms 3552 KiB
test_02.txt AC 1 ms 3540 KiB
test_03.txt AC 1 ms 3508 KiB
test_04.txt AC 1 ms 3512 KiB
test_05.txt AC 1 ms 3512 KiB
test_06.txt AC 73 ms 3508 KiB
test_07.txt AC 257 ms 19208 KiB
test_08.txt AC 318 ms 23600 KiB
test_09.txt AC 387 ms 24468 KiB
test_10.txt AC 180 ms 14948 KiB
test_11.txt AC 32 ms 3484 KiB
test_12.txt AC 376 ms 24408 KiB
test_13.txt AC 83 ms 10780 KiB
test_14.txt AC 19 ms 5208 KiB
test_15.txt AC 26 ms 5960 KiB
test_16.txt AC 194 ms 16032 KiB
test_17.txt AC 255 ms 19416 KiB
test_18.txt AC 117 ms 12096 KiB
test_19.txt AC 85 ms 10272 KiB
test_20.txt AC 396 ms 24316 KiB
test_21.txt AC 375 ms 24288 KiB
test_22.txt AC 406 ms 24412 KiB
test_23.txt AC 357 ms 24404 KiB
test_24.txt AC 364 ms 24200 KiB
test_25.txt AC 331 ms 24408 KiB
test_26.txt AC 350 ms 24356 KiB
test_27.txt AC 364 ms 24308 KiB
test_28.txt AC 254 ms 20680 KiB
test_29.txt AC 22 ms 5836 KiB
test_30.txt AC 347 ms 24420 KiB
test_31.txt AC 250 ms 20268 KiB
test_32.txt AC 238 ms 18780 KiB
test_33.txt AC 326 ms 24416 KiB