답안 #1072493

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1072493 2024-08-23T20:27:55 Z Boas 메기 농장 (IOI22_fish) C++17
35 / 100
1000 ms 888076 KB
#include "fish.h"

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

#pragma GCC optimize("Ofast")

#define loop(x, i) for (int i = 0; i < (x); i++)
#define loop1(x, i) for (int i = 1; i <= (x); i++)
#define rev(x, i) for (int i = (int)(x) - 1; i >= 0; i--)
#define itloop(x) for (auto it = begin(x); x != end(x); it++)
#define itrev(x) for (auto it = rbegin(x); x != rend(x); it++)
#define int long long
#define INF ((int64_t)(4e18 + 1))
#define INF32 ((int32_t)(2e9 + 1))
#define ALL(x) begin(x), end(x)
#define RALL(x) rbegin(x), rend(x)
#define removeIn(x, l) l.erase(find(ALL(l), x))
#define pb push_back
#define sz(x) (int)(x).size()
#define F first
#define S second
#define var const auto &
#define foreach(l) for (var e : l)

typedef int8_t i8;
typedef int16_t i16;
typedef int32_t i32;
typedef int64_t i64;
typedef pair<int, int> ii;
typedef tuple<int, int, int> iii;
typedef tuple<int, int, int, int> iiii;
typedef vector<int> vi;
typedef vector<i32> vi32;
typedef vector<vi> vvi;
typedef vector<vvi> vvvi;
typedef vector<vvvi> vvvvi;
typedef vector<ii> vii;
typedef vector<iii> viii;
typedef vector<vii> vvii;
typedef vector<viii> vviii;
typedef set<int> si;
typedef set<ii> sii;
typedef set<iii> siii;
typedef vector<si> vsi;
typedef vector<sii> vsii;
typedef vector<vsi> vvsi;
typedef vector<string> vstr;
typedef vector<vector<string>> vvstr;
typedef vector<bool> vb;
typedef vector<vb> vvb;

int max_weights(i32 N, i32 M, vi32 X, vi32 Y, vi32 W)
{
  if (M == 0)
    return 0;
  int yCount = /**max_element(ALL(Y)) + 2*/ 302;
  vvi wSum(N, vi(yCount));
  {
    vvi wsAtX(N, vi(yCount));
    loop(M, i)
    {
      wsAtX[X[i]][Y[i]] = W[i];
    }
    loop(N, x)
    {
      loop1(yCount - 1, y)
      {
        wSum[x][y] = wSum[x][y - 1] + wsAtX[x][y - 1];
      }
    }
  }
  vvvi dp(vvvi(yCount, vvi(yCount, vi(2))));  // 0: adjacentL, 1: adjacentR
  vvvi dp2(vvvi(yCount, vvi(yCount, vi(2)))); // 0: adjacentL, 1: adjacentR
  vi maxAll(N);
  vvi maxOfHeight(N, vi(yCount));
  loop(N, x)
  {
    vvi pMax1perJ(yCount, vi(yCount)); // dp[<=j][i][1]
    if (x != 0)
    {
      loop(yCount, j)
      {
        loop(yCount, i)
        {
          pMax1perJ[j][i] = max(j == 0 ? 0 : pMax1perJ[j - 1][i], dp[j][i][1]);
        }
      }
    }
    loop(yCount, j)
    {
      int prevMax = 0;
      if (x != 0)
      {
        loop(yCount, i)
        {
          prevMax = max(prevMax, dp[j][i][0]);
        }
      }
      loop(yCount, i) // hoogte van deze steiger
      {
        if (j <= i)
        {
          dp2[i][j][0] = dp2[i][j][1] = (x == 0) ? 0 : maxOfHeight[x - 1][i];
        }
        else
        {
          int sum = wSum[x][j] - wSum[x][i];
          if (x == 0)
          {
            dp2[i][j][0] = -1;
            dp2[i][j][1] = sum;
          }
          else
          {
            dp2[i][j][0] = max(dp[j][i][1], prevMax) + sum;
            dp2[i][j][1] = max(pMax1perJ[j][i], maxAll[x - 1]) + sum;
          }
        }
        maxAll[x] = max({maxAll[x], dp2[i][j][0]});
        maxOfHeight[x][j] = max({maxOfHeight[x][j], dp2[i][j][0], dp2[i][j][1]});
      }
    }
    dp = dp2;
  }
  return maxAll.back();
}
# 결과 실행 시간 메모리 Grader output
1 Runtime error 505 ms 882756 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 15 ms 11196 KB Output is correct
2 Runtime error 508 ms 888076 KB Execution killed with signal 11
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 1073 ms 492572 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 17 ms 11168 KB Output is correct
2 Correct 20 ms 11224 KB Output is correct
3 Correct 11 ms 11100 KB Output is correct
4 Correct 12 ms 11156 KB Output is correct
5 Correct 16 ms 11096 KB Output is correct
6 Correct 11 ms 11100 KB Output is correct
7 Correct 14 ms 11100 KB Output is correct
8 Correct 13 ms 11192 KB Output is correct
9 Correct 223 ms 12004 KB Output is correct
10 Correct 465 ms 12972 KB Output is correct
11 Correct 226 ms 11900 KB Output is correct
12 Correct 459 ms 12644 KB Output is correct
13 Correct 117 ms 11580 KB Output is correct
14 Correct 445 ms 12660 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 17 ms 11168 KB Output is correct
2 Correct 20 ms 11224 KB Output is correct
3 Correct 11 ms 11100 KB Output is correct
4 Correct 12 ms 11156 KB Output is correct
5 Correct 16 ms 11096 KB Output is correct
6 Correct 11 ms 11100 KB Output is correct
7 Correct 14 ms 11100 KB Output is correct
8 Correct 13 ms 11192 KB Output is correct
9 Correct 223 ms 12004 KB Output is correct
10 Correct 465 ms 12972 KB Output is correct
11 Correct 226 ms 11900 KB Output is correct
12 Correct 459 ms 12644 KB Output is correct
13 Correct 117 ms 11580 KB Output is correct
14 Correct 445 ms 12660 KB Output is correct
15 Correct 438 ms 12608 KB Output is correct
16 Correct 117 ms 11596 KB Output is correct
17 Correct 446 ms 14456 KB Output is correct
18 Correct 461 ms 14564 KB Output is correct
19 Correct 450 ms 14456 KB Output is correct
20 Correct 445 ms 14440 KB Output is correct
21 Correct 450 ms 14400 KB Output is correct
22 Correct 500 ms 16492 KB Output is correct
23 Correct 457 ms 13088 KB Output is correct
24 Correct 451 ms 13888 KB Output is correct
25 Correct 430 ms 12668 KB Output is correct
26 Correct 436 ms 12940 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 17 ms 11168 KB Output is correct
2 Correct 20 ms 11224 KB Output is correct
3 Correct 11 ms 11100 KB Output is correct
4 Correct 12 ms 11156 KB Output is correct
5 Correct 16 ms 11096 KB Output is correct
6 Correct 11 ms 11100 KB Output is correct
7 Correct 14 ms 11100 KB Output is correct
8 Correct 13 ms 11192 KB Output is correct
9 Correct 223 ms 12004 KB Output is correct
10 Correct 465 ms 12972 KB Output is correct
11 Correct 226 ms 11900 KB Output is correct
12 Correct 459 ms 12644 KB Output is correct
13 Correct 117 ms 11580 KB Output is correct
14 Correct 445 ms 12660 KB Output is correct
15 Correct 438 ms 12608 KB Output is correct
16 Correct 117 ms 11596 KB Output is correct
17 Correct 446 ms 14456 KB Output is correct
18 Correct 461 ms 14564 KB Output is correct
19 Correct 450 ms 14456 KB Output is correct
20 Correct 445 ms 14440 KB Output is correct
21 Correct 450 ms 14400 KB Output is correct
22 Correct 500 ms 16492 KB Output is correct
23 Correct 457 ms 13088 KB Output is correct
24 Correct 451 ms 13888 KB Output is correct
25 Correct 430 ms 12668 KB Output is correct
26 Correct 436 ms 12940 KB Output is correct
27 Runtime error 16 ms 29784 KB Execution killed with signal 11
28 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Execution timed out 1073 ms 492572 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 505 ms 882756 KB Execution killed with signal 11
2 Halted 0 ms 0 KB -