Submission #54634686


Source Code Expand

Copy
#include <bits/stdc++.h>
using namespace std;
#ifdef LOCAL
#include "settings/debug.cpp"
#define _GLIBCXX_DEBUG
#else
#define Debug(...) void(0)
#endif
#define rep(i, n) for (int i = 0; i < (n); ++i)
using ll = long long;
using ull = unsigned long long;
int main() {
Debug("aaa");
constexpr int n = 20;
int _n;
cin >> _n;
Debug("bbb");
assert(_n == n);
array<array<int, n>, n> Grid;
rep(i, n) rep(j, n) cin >> Grid[i][j];
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
#include <bits/stdc++.h>
using namespace std;
#ifdef LOCAL
  #include "settings/debug.cpp"
  #define _GLIBCXX_DEBUG
#else
  #define Debug(...) void(0)
#endif
#define rep(i, n) for (int i = 0; i < (n); ++i)
using ll = long long;
using ull = unsigned long long;

int main() {
  Debug("aaa");
  constexpr int n = 20;
  int _n;
  cin >> _n;
  Debug("bbb");
  assert(_n == n);
  array<array<int, n>, n> Grid;
  rep(i, n) rep(j, n) cin >> Grid[i][j];
  Debug("ccc");
  using bs = bitset<n * n>;
  constexpr ll INF = 1e18;
  array<array<tuple<ll, ll, ll, bs>, n * n>, n * n + 1> dp;
  Debug("ddd");
  rep(i, n * n + 1) rep(j, n * n) dp[i][j] = { INF, 0, -1, 0 };
  Debug("foo");
  dp[0][0] = { 0, 0, -1, 0 };
  auto id = [&](int i, int j) {
    return i * n + j;
  };
  rep(t, n * n) {
    rep(pi, n) rep(pj, n) {
      auto [cost, tank, prv, done] = dp[t][id(pi, pj)];
      if (cost == INF) continue;
      rep(i, n) rep(j, n) {
        if (done.test(id(i, j))) continue;
        if (Grid[i][j] < 0 && tank < -Grid[i][j]) continue;
        auto [ncost, ntank, _, ndone] = dp[t + 1][id(i, j)];
        ll ccost = cost + (abs(pi - i) + abs(pj - j)) * (100 + tank) + abs(Grid[i][j]);
        if (ccost < ncost) {
          done.set(id(i, j));
          dp[t + 1][id(i, j)] = { ccost, tank + Grid[i][j], id(pi, pj), done };
          done.reset(id(i, j));
        }
      }
    }
  }
  Debug("bar");
  pair<ll, int> best = { INF, -1 };
  for (int t = n * n; t >= 0; t--) {
    bool ok = false;
    rep(i, n * n) {
      auto [cost, tank, prv, done] = dp[t][i];
      if (cost == INF) continue;
      assert(done.count() == t);
      if (cost < best.first) {
        best = { cost, i };
        ok = true;
      }
    }
    if (ok) break;
  }
  Debug(best);
  vector<string> ans;
  for (int t = n * n; t > 0; --t) {
    auto [cost, tank, prv, done] = dp[t][best.second];
    assert(prv != -1);
    int ni = best.second / n, nj = best.second % n;
    int i = prv / n, j = prv % n;
    if (Grid[ni][nj] != 0) ans.push_back((Grid[ni][nj] < 0 ? "-" : "+") + to_string(abs(Grid[ni][nj])));
    while (ni != i || nj != j) {
      if (i < ni) ans.push_back("D"), ++i;
      if (i > ni) ans.push_back("U"), --i;
      if (j < nj) ans.push_back("R"), ++j;
      if (j > nj) ans.push_back("L"), --j;
    }
    best.second = prv;
  }
  Debug(ans.size());
  reverse(ans.begin(), ans.end());
  for (auto s : ans) cout << s << endl;
  return 0;
}

Submission Info

Submission Time
Task A - Leveling with a Dump Truck
User a01sa01to
Language C++ 23 (gcc 12.2)
Score 7732810292
Code Size 2508 Byte
Status AC
Exec Time 114 ms
Memory 16340 KB

Compile Error

In file included from /usr/include/c++/12/cassert:44,
                 from /usr/include/x86_64-linux-gnu/c++/12/bits/stdc++.h:33,
                 from Main.cpp:1:
Main.cpp: In function ‘int main()’:
Main.cpp:57:27: warning: comparison of integer expressions of different signedness: ‘std::size_t’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare]
   57 |       assert(done.count() == t);
      |              ~~~~~~~~~~~~~^~~~

Judge Result

Set Name test_ALL
Score / Max Score 7732810292 / 150000000000
Status
AC × 150
Set Name Test Cases
test_ALL test_0000.txt, test_0001.txt, test_0002.txt, test_0003.txt, test_0004.txt, test_0005.txt, test_0006.txt, test_0007.txt, test_0008.txt, test_0009.txt, test_0010.txt, test_0011.txt, test_0012.txt, test_0013.txt, test_0014.txt, test_0015.txt, test_0016.txt, test_0017.txt, test_0018.txt, test_0019.txt, test_0020.txt, test_0021.txt, test_0022.txt, test_0023.txt, test_0024.txt, test_0025.txt, test_0026.txt, test_0027.txt, test_0028.txt, test_0029.txt, test_0030.txt, test_0031.txt, test_0032.txt, test_0033.txt, test_0034.txt, test_0035.txt, test_0036.txt, test_0037.txt, test_0038.txt, test_0039.txt, test_0040.txt, test_0041.txt, test_0042.txt, test_0043.txt, test_0044.txt, test_0045.txt, test_0046.txt, test_0047.txt, test_0048.txt, test_0049.txt, test_0050.txt, test_0051.txt, test_0052.txt, test_0053.txt, test_0054.txt, test_0055.txt, test_0056.txt, test_0057.txt, test_0058.txt, test_0059.txt, test_0060.txt, test_0061.txt, test_0062.txt, test_0063.txt, test_0064.txt, test_0065.txt, test_0066.txt, test_0067.txt, test_0068.txt, test_0069.txt, test_0070.txt, test_0071.txt, test_0072.txt, test_0073.txt, test_0074.txt, test_0075.txt, test_0076.txt, test_0077.txt, test_0078.txt, test_0079.txt, test_0080.txt, test_0081.txt, test_0082.txt, test_0083.txt, test_0084.txt, test_0085.txt, test_0086.txt, test_0087.txt, test_0088.txt, test_0089.txt, test_0090.txt, test_0091.txt, test_0092.txt, test_0093.txt, test_0094.txt, test_0095.txt, test_0096.txt, test_0097.txt, test_0098.txt, test_0099.txt, test_0100.txt, test_0101.txt, test_0102.txt, test_0103.txt, test_0104.txt, test_0105.txt, test_0106.txt, test_0107.txt, test_0108.txt, test_0109.txt, test_0110.txt, test_0111.txt, test_0112.txt, test_0113.txt, test_0114.txt, test_0115.txt, test_0116.txt, test_0117.txt, test_0118.txt, test_0119.txt, test_0120.txt, test_0121.txt, test_0122.txt, test_0123.txt, test_0124.txt, test_0125.txt, test_0126.txt, test_0127.txt, test_0128.txt, test_0129.txt, test_0130.txt, test_0131.txt, test_0132.txt, test_0133.txt, test_0134.txt, test_0135.txt, test_0136.txt, test_0137.txt, test_0138.txt, test_0139.txt, test_0140.txt, test_0141.txt, test_0142.txt, test_0143.txt, test_0144.txt, test_0145.txt, test_0146.txt, test_0147.txt, test_0148.txt, test_0149.txt
Case Name Status Exec Time Memory
test_0000.txt AC 101 ms 16136 KB
test_0001.txt AC 105 ms 16336 KB
test_0002.txt AC 94 ms 16192 KB
test_0003.txt AC 103 ms 16204 KB
test_0004.txt AC 93 ms 16148 KB
test_0005.txt AC 102 ms 16144 KB
test_0006.txt AC 93 ms 16208 KB
test_0007.txt AC 98 ms 16144 KB
test_0008.txt AC 93 ms 16272 KB
test_0009.txt AC 102 ms 16076 KB
test_0010.txt AC 92 ms 16140 KB
test_0011.txt AC 94 ms 16208 KB
test_0012.txt AC 93 ms 16144 KB
test_0013.txt AC 102 ms 16128 KB
test_0014.txt AC 96 ms 16208 KB
test_0015.txt AC 96 ms 16200 KB
test_0016.txt AC 92 ms 16148 KB
test_0017.txt AC 107 ms 16164 KB
test_0018.txt AC 101 ms 16136 KB
test_0019.txt AC 101 ms 16340 KB
test_0020.txt AC 100 ms 16196 KB
test_0021.txt AC 93 ms 16204 KB
test_0022.txt AC 89 ms 16148 KB
test_0023.txt AC 97 ms 16208 KB
test_0024.txt AC 96 ms 16220 KB
test_0025.txt AC 100 ms 16156 KB
test_0026.txt AC 95 ms 16144 KB
test_0027.txt AC 103 ms 16300 KB
test_0028.txt AC 106 ms 16224 KB
test_0029.txt AC 90 ms 16140 KB
test_0030.txt AC 93 ms 16264 KB
test_0031.txt AC 95 ms 16208 KB
test_0032.txt AC 96 ms 16196 KB
test_0033.txt AC 100 ms 16144 KB
test_0034.txt AC 101 ms 16192 KB
test_0035.txt AC 90 ms 16076 KB
test_0036.txt AC 100 ms 16200 KB
test_0037.txt AC 100 ms 16196 KB
test_0038.txt AC 103 ms 16076 KB
test_0039.txt AC 95 ms 16204 KB
test_0040.txt AC 100 ms 16132 KB
test_0041.txt AC 106 ms 16200 KB
test_0042.txt AC 96 ms 16204 KB
test_0043.txt AC 102 ms 16148 KB
test_0044.txt AC 99 ms 16140 KB
test_0045.txt AC 100 ms 16196 KB
test_0046.txt AC 100 ms 16208 KB
test_0047.txt AC 97 ms 16268 KB
test_0048.txt AC 97 ms 16268 KB
test_0049.txt AC 96 ms 16140 KB
test_0050.txt AC 98 ms 16056 KB
test_0051.txt AC 103 ms 16172 KB
test_0052.txt AC 110 ms 16156 KB
test_0053.txt AC 104 ms 16104 KB
test_0054.txt AC 100 ms 16144 KB
test_0055.txt AC 101 ms 16140 KB
test_0056.txt AC 90 ms 16148 KB
test_0057.txt AC 100 ms 16148 KB
test_0058.txt AC 103 ms 16108 KB
test_0059.txt AC 98 ms 16192 KB
test_0060.txt AC 93 ms 16340 KB
test_0061.txt AC 94 ms 16148 KB
test_0062.txt AC 93 ms 16148 KB
test_0063.txt AC 96 ms 16152 KB
test_0064.txt AC 98 ms 16264 KB
test_0065.txt AC 96 ms 16104 KB
test_0066.txt AC 99 ms 16100 KB
test_0067.txt AC 96 ms 16144 KB
test_0068.txt AC 101 ms 16080 KB
test_0069.txt AC 96 ms 16300 KB
test_0070.txt AC 99 ms 16192 KB
test_0071.txt AC 98 ms 16292 KB
test_0072.txt AC 107 ms 16104 KB
test_0073.txt AC 104 ms 16272 KB
test_0074.txt AC 91 ms 16200 KB
test_0075.txt AC 93 ms 16204 KB
test_0076.txt AC 95 ms 16148 KB
test_0077.txt AC 98 ms 16144 KB
test_0078.txt AC 103 ms 16108 KB
test_0079.txt AC 97 ms 16204 KB
test_0080.txt AC 114 ms 16148 KB
test_0081.txt AC 105 ms 16196 KB
test_0082.txt AC 96 ms 16072 KB
test_0083.txt AC 95 ms 16204 KB
test_0084.txt AC 95 ms 16132 KB
test_0085.txt AC 92 ms 16148 KB
test_0086.txt AC 92 ms 16144 KB
test_0087.txt AC 102 ms 16132 KB
test_0088.txt AC 96 ms 16296 KB
test_0089.txt AC 102 ms 16200 KB
test_0090.txt AC 93 ms 16080 KB
test_0091.txt AC 102 ms 16104 KB
test_0092.txt AC 99 ms 16144 KB
test_0093.txt AC 94 ms 16128 KB
test_0094.txt AC 100 ms 16072 KB
test_0095.txt AC 111 ms 16108 KB
test_0096.txt AC 89 ms 16160 KB
test_0097.txt AC 94 ms 16196 KB
test_0098.txt AC 95 ms 16148 KB
test_0099.txt AC 100 ms 16200 KB
test_0100.txt AC 100 ms 16144 KB
test_0101.txt AC 93 ms 16144 KB
test_0102.txt AC 102 ms 16192 KB
test_0103.txt AC 113 ms 16076 KB
test_0104.txt AC 101 ms 16136 KB
test_0105.txt AC 97 ms 16292 KB
test_0106.txt AC 106 ms 16104 KB
test_0107.txt AC 100 ms 16200 KB
test_0108.txt AC 103 ms 16200 KB
test_0109.txt AC 96 ms 16200 KB
test_0110.txt AC 93 ms 16132 KB
test_0111.txt AC 98 ms 16336 KB
test_0112.txt AC 102 ms 16208 KB
test_0113.txt AC 94 ms 16192 KB
test_0114.txt AC 98 ms 16296 KB
test_0115.txt AC 100 ms 16192 KB
test_0116.txt AC 102 ms 16076 KB
test_0117.txt AC 100 ms 16132 KB
test_0118.txt AC 98 ms 16132 KB
test_0119.txt AC 105 ms 16148 KB
test_0120.txt AC 92 ms 16136 KB
test_0121.txt AC 101 ms 16204 KB
test_0122.txt AC 91 ms 16208 KB
test_0123.txt AC 96 ms 16292 KB
test_0124.txt AC 94 ms 16268 KB
test_0125.txt AC 98 ms 16156 KB
test_0126.txt AC 93 ms 16208 KB
test_0127.txt AC 100 ms 16140 KB
test_0128.txt AC 94 ms 16296 KB
test_0129.txt AC 102 ms 16132 KB
test_0130.txt AC 97 ms 16288 KB
test_0131.txt AC 100 ms 16140 KB
test_0132.txt AC 94 ms 16144 KB
test_0133.txt AC 96 ms 16152 KB
test_0134.txt AC 94 ms 16148 KB
test_0135.txt AC 100 ms 16204 KB
test_0136.txt AC 93 ms 16148 KB
test_0137.txt AC 105 ms 16204 KB
test_0138.txt AC 96 ms 16200 KB
test_0139.txt AC 94 ms 16296 KB
test_0140.txt AC 107 ms 16204 KB
test_0141.txt AC 90 ms 16156 KB
test_0142.txt AC 98 ms 16152 KB
test_0143.txt AC 101 ms 16196 KB
test_0144.txt AC 94 ms 16340 KB
test_0145.txt AC 98 ms 16200 KB
test_0146.txt AC 100 ms 16132 KB
test_0147.txt AC 90 ms 16264 KB
test_0148.txt AC 98 ms 16132 KB
test_0149.txt AC 89 ms 16140 KB


2025-04-06 (Sun)
09:54:17 +00:00