提出 #70488208


ソースコード 拡げる

#include <cassert>
#include <cmath>
#include <cstdint>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <algorithm>
#include <bitset>
#include <chrono>
#include <complex>
#include <deque>
#include <functional>
#include <iostream>
#include <limits>
#include <map>
#include <numeric>
#include <queue>
#include <random>
#include <set>
#include <sstream>
#include <string>
#include <unordered_map>
#include <unordered_set>
#include <utility>
#include <vector>

using namespace std;

using Int = long long;

template <class T1, class T2> ostream &operator<<(ostream &os, const pair<T1, T2> &a) { return os << "(" << a.first << ", " << a.second << ")"; };
template <class T> ostream &operator<<(ostream &os, const vector<T> &as) { const int sz = as.size(); os << "["; for (int i = 0; i < sz; ++i) { if (i >= 256) { os << ", ..."; break; } if (i > 0) { os << ", "; } os << as[i]; } return os << "]"; }
template <class T> void pv(T a, T b) { for (T i = a; i != b; ++i) cerr << *i << " "; cerr << endl; }
template <class T> bool chmin(T &t, const T &f) { if (t > f) { t = f; return true; } return false; }
template <class T> bool chmax(T &t, const T &f) { if (t < f) { t = f; return true; } return false; }
#define COLOR(s) ("\x1b[" s "m")


constexpr int INF = 1001001001;

int N, M;
vector<int> B;

int main() {
  for (int numCases; ~scanf("%d", &numCases); ) { for (int caseId = 1; caseId <= numCases; ++caseId) {
    scanf("%d", &N);
    M = N*(N-1)/2;
    B.resize(M);
    for (int i = 0; i < M; ++i) scanf("%d", &B[i]);
    
    vector<int> BSum(M + 1, 0);
    for (int i = 0; i < M; ++i) BSum[i + 1] = BSum[i] + B[i];
    
    vector<int> ones;
    for (int i = 0; i < M; ++i) if (B[i]) ones.push_back(i);
    
    vector<int> mxs(M + 1, 0);
    for (int n = 1; n <= N; ++n) {
      const int k = n*(n-1)/2;
      chmax(mxs[M - k], k);
    }
    for (int z = M; z >= 1; --z) chmax(mxs[z - 1], mxs[z]);
    
    vector<int> fs{0};
    fs[0] = 0;
    for (int i = 0; i < M; ++i) {
      for (int k = 0; k <= i; ++k) {
        const int z = (M - BSum[M]) - (i - k);
        if (!(0 <= z && z <= M) || k > mxs[z]) {
          fs[k] = INF;
        }
      }
      vector<int> gs(i + 1 + 1, INF);
      for (int k = 0; k <= i; ++k) {
        // 0
        chmin(gs[k], fs[k]);
        // 1
        if (k < BSum[M]) {
          chmin(gs[k + 1], fs[k] + abs(i - ones[k]));
        }
      }
      fs.swap(gs);
    }
    int ans = fs[BSum[M]];
    printf("%d\n", (ans < INF) ? ans : -1);
  }
#ifndef LOCAL
  break;
#endif
  }
  return 0;
}

提出情報

提出日時
問題 D - Valid Output for DSU Problems
ユーザ hos_lyric
言語 C++ 17 (gcc 12.2)
得点 0
コード長 2636 Byte
結果 WA
実行時間 2210 ms
メモリ 6076 KiB

コンパイルエラー

Main.cpp: In function ‘int main()’:
Main.cpp:46:10: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
   46 |     scanf("%d", &N);
      |     ~~~~~^~~~~~~~~~
Main.cpp:49:38: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
   49 |     for (int i = 0; i < M; ++i) scanf("%d", &B[i]);
      |                                 ~~~~~^~~~~~~~~~~~~

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 0 / 1100
結果
AC × 1
AC × 2
WA × 40
TLE × 50
セット名 テストケース
Sample sample.txt
All maxB.txt, maxN_1.txt, maxN_10.txt, maxN_11.txt, maxN_12.txt, maxN_13.txt, maxN_14.txt, maxN_15.txt, maxN_16.txt, maxN_17.txt, maxN_18.txt, maxN_19.txt, maxN_2.txt, maxN_20.txt, maxN_3.txt, maxN_4.txt, maxN_5.txt, maxN_6.txt, maxN_7.txt, maxN_8.txt, maxN_9.txt, middle_1.txt, middle_10.txt, middle_11.txt, middle_12.txt, middle_13.txt, middle_14.txt, middle_15.txt, middle_16.txt, middle_17.txt, middle_18.txt, middle_19.txt, middle_2.txt, middle_20.txt, middle_21.txt, middle_22.txt, middle_23.txt, middle_24.txt, middle_25.txt, middle_26.txt, middle_27.txt, middle_28.txt, middle_29.txt, middle_3.txt, middle_30.txt, middle_4.txt, middle_5.txt, middle_6.txt, middle_7.txt, middle_8.txt, middle_9.txt, random_1.txt, random_10.txt, random_11.txt, random_12.txt, random_13.txt, random_14.txt, random_15.txt, random_16.txt, random_17.txt, random_18.txt, random_19.txt, random_2.txt, random_20.txt, random_21.txt, random_22.txt, random_23.txt, random_24.txt, random_25.txt, random_26.txt, random_27.txt, random_28.txt, random_29.txt, random_3.txt, random_30.txt, random_4.txt, random_5.txt, random_6.txt, random_7.txt, random_8.txt, random_9.txt, sample.txt, small_1.txt, small_10.txt, small_2.txt, small_3.txt, small_4.txt, small_5.txt, small_6.txt, small_7.txt, small_8.txt, small_9.txt
ケース名 結果 実行時間 メモリ
maxB.txt AC 68 ms 3736 KiB
maxN_1.txt TLE 2207 ms 5932 KiB
maxN_10.txt TLE 2207 ms 5868 KiB
maxN_11.txt TLE 2208 ms 5892 KiB
maxN_12.txt TLE 2207 ms 6076 KiB
maxN_13.txt TLE 2208 ms 5976 KiB
maxN_14.txt TLE 2208 ms 5960 KiB
maxN_15.txt TLE 2207 ms 5884 KiB
maxN_16.txt TLE 2207 ms 5976 KiB
maxN_17.txt TLE 2207 ms 5700 KiB
maxN_18.txt TLE 2208 ms 6048 KiB
maxN_19.txt TLE 2207 ms 5948 KiB
maxN_2.txt TLE 2208 ms 5868 KiB
maxN_20.txt TLE 2207 ms 5928 KiB
maxN_3.txt TLE 2210 ms 5900 KiB
maxN_4.txt TLE 2207 ms 5908 KiB
maxN_5.txt TLE 2207 ms 5572 KiB
maxN_6.txt TLE 2207 ms 5920 KiB
maxN_7.txt TLE 2210 ms 5856 KiB
maxN_8.txt TLE 2207 ms 5572 KiB
maxN_9.txt TLE 2207 ms 5692 KiB
middle_1.txt WA 273 ms 3768 KiB
middle_10.txt WA 280 ms 3816 KiB
middle_11.txt WA 263 ms 3800 KiB
middle_12.txt WA 266 ms 3912 KiB
middle_13.txt WA 268 ms 3788 KiB
middle_14.txt WA 271 ms 3816 KiB
middle_15.txt WA 274 ms 3700 KiB
middle_16.txt WA 269 ms 3972 KiB
middle_17.txt WA 272 ms 3820 KiB
middle_18.txt WA 268 ms 4024 KiB
middle_19.txt WA 266 ms 3836 KiB
middle_2.txt WA 265 ms 3976 KiB
middle_20.txt WA 262 ms 3980 KiB
middle_21.txt WA 268 ms 3700 KiB
middle_22.txt WA 264 ms 3976 KiB
middle_23.txt WA 272 ms 3692 KiB
middle_24.txt WA 265 ms 3792 KiB
middle_25.txt WA 262 ms 3912 KiB
middle_26.txt WA 263 ms 3812 KiB
middle_27.txt WA 266 ms 3812 KiB
middle_28.txt WA 267 ms 3796 KiB
middle_29.txt WA 262 ms 3832 KiB
middle_3.txt WA 268 ms 4040 KiB
middle_30.txt WA 281 ms 3792 KiB
middle_4.txt WA 273 ms 3952 KiB
middle_5.txt WA 266 ms 3812 KiB
middle_6.txt WA 270 ms 3704 KiB
middle_7.txt WA 256 ms 3704 KiB
middle_8.txt WA 273 ms 3700 KiB
middle_9.txt WA 260 ms 3900 KiB
random_1.txt TLE 2207 ms 5360 KiB
random_10.txt TLE 2207 ms 5020 KiB
random_11.txt TLE 2207 ms 5208 KiB
random_12.txt TLE 2207 ms 5096 KiB
random_13.txt TLE 2207 ms 5168 KiB
random_14.txt TLE 2207 ms 4980 KiB
random_15.txt TLE 2207 ms 5768 KiB
random_16.txt TLE 2208 ms 5348 KiB
random_17.txt TLE 2207 ms 5056 KiB
random_18.txt TLE 2207 ms 5348 KiB
random_19.txt TLE 2207 ms 5284 KiB
random_2.txt TLE 2207 ms 5284 KiB
random_20.txt TLE 2207 ms 5508 KiB
random_21.txt TLE 2207 ms 5852 KiB
random_22.txt TLE 2207 ms 5816 KiB
random_23.txt TLE 2207 ms 5016 KiB
random_24.txt TLE 2207 ms 5040 KiB
random_25.txt TLE 2207 ms 5040 KiB
random_26.txt TLE 2207 ms 5488 KiB
random_27.txt TLE 2207 ms 4692 KiB
random_28.txt TLE 2207 ms 4820 KiB
random_29.txt TLE 2207 ms 4956 KiB
random_3.txt TLE 2207 ms 4932 KiB
random_30.txt TLE 2207 ms 4684 KiB
random_4.txt TLE 2207 ms 5064 KiB
random_5.txt TLE 2207 ms 5392 KiB
random_6.txt TLE 2207 ms 5988 KiB
random_7.txt TLE 2207 ms 4636 KiB
random_8.txt TLE 2207 ms 5452 KiB
random_9.txt TLE 2210 ms 4416 KiB
sample.txt AC 1 ms 3712 KiB
small_1.txt WA 39 ms 3692 KiB
small_10.txt WA 24 ms 3692 KiB
small_2.txt WA 39 ms 3708 KiB
small_3.txt WA 38 ms 3672 KiB
small_4.txt WA 39 ms 3668 KiB
small_5.txt WA 39 ms 3820 KiB
small_6.txt WA 39 ms 3856 KiB
small_7.txt WA 38 ms 3692 KiB
small_8.txt WA 39 ms 3740 KiB
small_9.txt WA 39 ms 3856 KiB