답안 #1074055

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1074055 2024-08-25T07:25:13 Z Gromp15 메기 농장 (IOI22_fish) C++17
3 / 100
927 ms 2097152 KB
#include <bits/stdc++.h>
#include "fish.h"
#define ll long long
#define ar array
#define sz(x) (int)x.size()
#define all(x) x.begin(), x.end()
using namespace std;

const ll INF = 1e18;
template<typename T> bool ckmin(T &a, const T &b ) { return a > b ? a = b, 1 : 0; }
template<typename T> bool ckmax(T &a, const T &b ) { return a < b ? a = b, 1 : 0; }

long long max_weights(int n, int m, std::vector<int> x, std::vector<int> y, std::vector<int> w) {
	vector<vector<ar<ll, 2>>> each(n);
	for (int i = 0; i < m; i++) {
		each[x[i]].push_back({y[i], w[i]});
		each[x[i]].push_back({y[i]-1, 0});
	}
	for (int i = 0; i < n; i++) each[i].push_back({n-1, 0}), each[i].push_back({0, 0}), each[i].push_back({-1, 0});
	for (int i = 0; i < n; i++) {
		sort(all(each[i]));
		vector<ar<ll, 2>> nw;
		ll s = 0;
		for (int j = 0; j < sz(each[i]); j++) {
			int r = j;
			while (r+1 < sz(each[i]) && each[i][r+1][0] == each[i][r][0]) r++;
			for (int k = j; k <= r; k++) s += each[i][k][1];
			nw.push_back({each[i][j][0], s});
			j = r;
		}
		swap(each[i], nw);
	}
	vector<vector<ll>> dp;
	auto query = [&](int pos, int x) {
		return (*prev(upper_bound(all(each[pos]), ar<ll, 2>{x, LLONG_MAX})))[1];
	};
	for (int i = 0; i < n; i++) {
		vector<vector<ll>> dp2;
		const int N = sz(each[i]);
		dp2.resize(i ? sz(each[i-1]) : 1, vector<ll>(N, -INF));
		if (!i) {
			for (int j = 0; j < N; j++) {
				dp2[0][j] = -each[i][j][1] + query(i+1, each[i][j][0]);
			}
			swap(dp, dp2);
		}
		else {
			for (int j = 0; j < sz(dp); j++) {
				for (int k = 0; k < sz(dp[j]); k++) {
					for (int l = 0; l < N; l++) {
						ckmax(dp2[k][l], dp[j][k] + query(i-1, each[i][l][0]) + (i+1 < n ? query(i+1, each[i][l][0]) : 0) - each[i][l][1] - query(i-1, min(i-2 >= 0 ? each[i-2][j][0] : -1, each[i][l][0])));
					}
				}
			}
			swap(dp, dp2);
		}
	}
	ll ans = -INF;
	for (auto x : dp) for (auto z : x) ckmax(ans, z);
	return ans;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 123 ms 19676 KB Output is correct
2 Correct 142 ms 22388 KB Output is correct
3 Correct 71 ms 10584 KB Output is correct
4 Correct 70 ms 10588 KB Output is correct
5 Correct 463 ms 38168 KB Output is correct
6 Correct 795 ms 38884 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 348 KB Output is correct
2 Runtime error 927 ms 2097152 KB Execution killed with signal 9
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 71 ms 10588 KB Output is correct
2 Correct 70 ms 10588 KB Output is correct
3 Incorrect 96 ms 15704 KB 1st lines differ - on the 1st token, expected: '21261825233649', found: '18509152103730'
4 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 1 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 1 ms 348 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 0 ms 348 KB Output is correct
7 Correct 0 ms 348 KB Output is correct
8 Correct 0 ms 348 KB Output is correct
9 Incorrect 1 ms 512 KB 1st lines differ - on the 1st token, expected: '216624184325', found: '170161911706'
10 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 1 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 1 ms 348 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 0 ms 348 KB Output is correct
7 Correct 0 ms 348 KB Output is correct
8 Correct 0 ms 348 KB Output is correct
9 Incorrect 1 ms 512 KB 1st lines differ - on the 1st token, expected: '216624184325', found: '170161911706'
10 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 348 KB Output is correct
2 Correct 1 ms 348 KB Output is correct
3 Correct 0 ms 348 KB Output is correct
4 Correct 1 ms 348 KB Output is correct
5 Correct 0 ms 348 KB Output is correct
6 Correct 0 ms 348 KB Output is correct
7 Correct 0 ms 348 KB Output is correct
8 Correct 0 ms 348 KB Output is correct
9 Incorrect 1 ms 512 KB 1st lines differ - on the 1st token, expected: '216624184325', found: '170161911706'
10 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 71 ms 10588 KB Output is correct
2 Correct 70 ms 10588 KB Output is correct
3 Incorrect 96 ms 15704 KB 1st lines differ - on the 1st token, expected: '21261825233649', found: '18509152103730'
4 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 123 ms 19676 KB Output is correct
2 Correct 142 ms 22388 KB Output is correct
3 Correct 71 ms 10584 KB Output is correct
4 Correct 70 ms 10588 KB Output is correct
5 Correct 463 ms 38168 KB Output is correct
6 Correct 795 ms 38884 KB Output is correct
7 Correct 0 ms 348 KB Output is correct
8 Runtime error 927 ms 2097152 KB Execution killed with signal 9
9 Halted 0 ms 0 KB -