結果

問題 No.3051 Make All Divisible
ユーザー Andrew8128
提出日時 2025-03-07 22:43:49
言語 C++23
(gcc 13.3.0 + boost 1.87.0)
結果
WA  
実行時間 -
コード長 978 bytes
コンパイル時間 773 ms
コンパイル使用メモリ 85,536 KB
実行使用メモリ 8,612 KB
最終ジャッジ日時 2025-03-07 22:43:51
合計ジャッジ時間 1,909 ms
ジャッジサーバーID
(参考情報)
judge2 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 17 WA * 14
権限があれば一括ダウンロードができます

ソースコード

diff #

#include <iostream>
#include <vector>
using namespace std;
typedef long long ll;
int main()
{
  int T;
  cin >> T;
  while (T--)
  {
    ll n, k;
    cin >> n >> k;
    vector<ll> A(n);
    for (size_t i = 0; i < n; i++)
    {
      cin >> A[i];
    }

    ll sum = 0, ma = 0, ok = 0, cnt = 0;
    for (size_t i = 0; i < n; i++)
    {
      if (A[i] % k == 0 && A[i] != 0)
      {
        ok++;
      }
      if (A[i] % k != 0)
      {
        cnt++;
      }
      sum += A[i] % k;
      ma = max(ma, A[i] % k);
    }
    if (sum == 0)
    {
      cout << 0 << '\n';
      continue;
    }
    if (sum % k != 0)
    {
      cout << -1 << '\n';
      continue;
    }
    while ((cnt < k) || (sum / k < ma))
    {
      ok -= 1;
      cnt += 1;
      sum += k;
      ma = max(ma, k);
    }
    if (ok < 0)
    {
      cout << -1 << '\n';
      continue;
    }
    cout << sum / k << '\n';
  }
  return 0;
}
/*
  File : ~/yukicoder/526/D.cpp
  Date : 2025/03/07
  Time : 22:15:56
*/
0