답안 #830644

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
830644 2023-08-19T08:50:17 Z NeroZein 메기 농장 (IOI22_fish) C++17
14 / 100
105 ms 220728 KB
#include "fish.h"
#include <bits/stdc++.h>
using namespace std;

const int N = 302;
int n; 
int a[N][N]; 
bool smaller;
int max_m, max_n;
long long pref[N][N]; 
long long dp[N][N][N]; 

long long bt(int col, int last, int last2) {
  if (col > n || (smaller && col > 5)) {
    return 0;
  }
  long long& ret = dp[col][last][last2];
  if (ret != -1) {
    return ret;
  }
  long long sum = 0; 
  long long ps = pref[col][last]; 
  for (int nlast = 0; nlast <= min(n, 11); ++nlast) {
    if (nlast > last2 && nlast > last) sum += a[col - 1][nlast];
    if (nlast <= last) ps -= a[col][nlast];
    //if (sum) assert(ps == 0);
    ret = max(ret, bt(col + 1, nlast, last) + sum + ps); 
  }
  return ret;
}

long long max_weights(int N_, int M, vector<int> X, vector<int> Y, vector<int> W) {
  n = N_; 
  bool even = true;
  bool zero_Y = true;
  smaller = true;
  for (int i = 0; i < M; ++i) {
    max_m = max(max_m, X[i] + 1); 
    max_n = max(max_n, Y[i] + 1); 
    zero_Y &= Y[i] == 0;
    even &= X[i] % 2 == 0;
    smaller &= X[i] <= 1; 
    a[X[i] + 1][Y[i] + 1] = W[i];
  }
  if (even || zero_Y) {
    return accumulate(W.begin(), W.end(), 0LL);
  }
  for (int i = 1; i <= max_m; ++i) {
    for (int j = 1; j <= max_n; ++j) {
      pref[i][j] = pref[i][j - 1] + a[i][j];      
    } 
  }
  memset(dp, -1, sizeof dp);
  return bt(1, 0, 0); 
}
# 결과 실행 시간 메모리 Grader output
1 Correct 17 ms 2516 KB Output is correct
2 Runtime error 36 ms 7228 KB Execution killed with signal 11
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 70 ms 215884 KB Output is correct
2 Incorrect 105 ms 220728 KB 1st lines differ - on the 1st token, expected: '40604614618209', found: '1450741445090'
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Runtime error 4 ms 384 KB Execution killed with signal 11
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 69 ms 215876 KB Output is correct
2 Correct 70 ms 215884 KB Output is correct
3 Correct 70 ms 215864 KB Output is correct
4 Correct 70 ms 215824 KB Output is correct
5 Correct 71 ms 215880 KB Output is correct
6 Correct 70 ms 215860 KB Output is correct
7 Correct 73 ms 215904 KB Output is correct
8 Correct 72 ms 215820 KB Output is correct
9 Correct 72 ms 216376 KB Output is correct
10 Correct 74 ms 216992 KB Output is correct
11 Correct 72 ms 216408 KB Output is correct
12 Correct 75 ms 216916 KB Output is correct
13 Correct 72 ms 216120 KB Output is correct
14 Correct 74 ms 216924 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 69 ms 215876 KB Output is correct
2 Correct 70 ms 215884 KB Output is correct
3 Correct 70 ms 215864 KB Output is correct
4 Correct 70 ms 215824 KB Output is correct
5 Correct 71 ms 215880 KB Output is correct
6 Correct 70 ms 215860 KB Output is correct
7 Correct 73 ms 215904 KB Output is correct
8 Correct 72 ms 215820 KB Output is correct
9 Correct 72 ms 216376 KB Output is correct
10 Correct 74 ms 216992 KB Output is correct
11 Correct 72 ms 216408 KB Output is correct
12 Correct 75 ms 216916 KB Output is correct
13 Correct 72 ms 216120 KB Output is correct
14 Correct 74 ms 216924 KB Output is correct
15 Incorrect 75 ms 216964 KB 1st lines differ - on the 1st token, expected: '299', found: '11'
16 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 69 ms 215876 KB Output is correct
2 Correct 70 ms 215884 KB Output is correct
3 Correct 70 ms 215864 KB Output is correct
4 Correct 70 ms 215824 KB Output is correct
5 Correct 71 ms 215880 KB Output is correct
6 Correct 70 ms 215860 KB Output is correct
7 Correct 73 ms 215904 KB Output is correct
8 Correct 72 ms 215820 KB Output is correct
9 Correct 72 ms 216376 KB Output is correct
10 Correct 74 ms 216992 KB Output is correct
11 Correct 72 ms 216408 KB Output is correct
12 Correct 75 ms 216916 KB Output is correct
13 Correct 72 ms 216120 KB Output is correct
14 Correct 74 ms 216924 KB Output is correct
15 Incorrect 75 ms 216964 KB 1st lines differ - on the 1st token, expected: '299', found: '11'
16 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Runtime error 4 ms 384 KB Execution killed with signal 11
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 17 ms 2516 KB Output is correct
2 Runtime error 36 ms 7228 KB Execution killed with signal 11
3 Halted 0 ms 0 KB -