제출 #940586

#제출 시각아이디문제언어결과실행 시간메모리
940586Ghetto메기 농장 (IOI22_fish)C++17
6 / 100
79 ms30292 KiB
#include "fish.h" #include <bits/stdc++.h> using namespace std; using lint = long long; const int MAX_N = 1e5 + 5, MAX_M = 3e5 + 5; int n, m; int x[MAX_M], y[MAX_M]; lint w[MAX_M]; lint w_at[2][MAX_N]; lint w_sum[2][MAX_N]; void precomp() { for (int i = 0; i < m; i++) w_at[x[i]][y[i]] = w[i]; for (int i = 0; i <= 1; i++) for (int j = 0; j < n; j++) w_sum[i][j] = w_at[i][j] + ((j == 0) ? 0 : w_sum[i][j - 1]); } void init() { for (int i = 0; i <= 1; i++) for (int j = 0; j < n; j++) w_at[i][j] = 0; } lint max_weights(int tmp_n, int tmp_m, vector<int> tmp_x, vector<int> tmp_y, vector<int> tmp_w) { n = tmp_n; m = tmp_m; init(); for (int i = 0; i < m; i++) { x[i] = tmp_x[i]; y[i] = tmp_y[i]; w[i] = tmp_w[i]; } precomp(); if (n == 2) { lint ans = max(w_sum[0][n - 1], w_sum[1][n - 1]); return ans; } lint ans = w_sum[1][n - 1]; for (int j = 0; j < n; j++) { lint new_ans = w_sum[1][n - 1] - w_sum[1][j] + w_sum[0][j]; ans = max(ans, new_ans); } return ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...