Submission #50372560
Source Code Expand
#include <bits/stdc++.h>
typedef long long valueType;
typedef std::vector<valueType> ValueVector;
typedef std::vector<ValueVector> ValueMatrix;
typedef std::pair<valueType, valueType> ValuePair;
typedef std::vector<ValuePair> PairVector;
int main() {
std::ios::sync_with_stdio(false);
std::cin.tie(nullptr);
std::cout.tie(nullptr);
valueType N, M;
std::cin >> N >> M;
PairVector edges(M);
for (auto &[u, v] : edges)
std::cin >> u >> v;
ValueVector W(N + 1, 0), A(N + 1, 0);
for (valueType i = 1; i <= N; ++i)
std::cin >> W[i];
for (valueType i = 1; i <= N; ++i)
std::cin >> A[i];
ValueMatrix G(N + 1);
ValueVector InDegree(N + 1, 0);
for (auto const &[u, v] : edges) {
if (W[u] > W[v]) {
G[u].push_back(v);
++InDegree[v];
} else if (W[v] > W[u]) {
G[v].push_back(u);
++InDegree[u];
}
}
std::queue<valueType> Queue;
ValueVector Topo;
Topo.reserve(N);
for (valueType i = 1; i <= N; ++i) {
if (InDegree[i] == 0)
Queue.push(i);
}
while (!Queue.empty()) {
valueType const x = Queue.front();
Queue.pop();
Topo.push_back(x);
for (auto const &to : G[x])
if (--InDegree[to] == 0)
Queue.push(to);
}
std::reverse(Topo.begin(), Topo.end());
ValueVector F(N + 1, 1);
ValueMatrix S(N + 1);
for (auto const &x : Topo) {
ValueVector Max(W[x], 0), Path(W[x], -1);
for (auto const &to : G[x]) {
for (valueType i = W[x] - 1; i >= W[to]; --i) {
if (Max[i] < Max[i - W[to]] + F[to]) {
Max[i] = Max[i - W[to]] + F[to];
Path[i] = to;
}
}
}
for (valueType i = 0; i < W[x]; ++i)
F[x] = std::max(F[x], Max[i] + 1);
}
std::reverse(Topo.begin(), Topo.end());
valueType ans = 0;
for (valueType i = 1; i <= N; ++i)
ans += A[i] * F[i];
std::cout << ans << std::endl;
return 0;
}
Submission Info
| Submission Time | |
|---|---|
| Task | F - Breakdown |
| User | UserUnauthorized |
| Language | C++ 20 (gcc 12.2) |
| Score | 475 |
| Code Size | 2225 Byte |
| Status | AC |
| Exec Time | 33 ms |
| Memory | 4312 KiB |
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 475 / 475 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | example0.txt, example1.txt, example2.txt |
| All | 000.txt, 001.txt, 002.txt, 003.txt, 004.txt, 005.txt, 006.txt, 007.txt, 008.txt, 009.txt, 010.txt, 011.txt, 012.txt, 013.txt, 014.txt, 015.txt, 016.txt, 017.txt, 018.txt, 019.txt, 020.txt, 021.txt, 022.txt, 023.txt, 024.txt, 025.txt, 026.txt, 027.txt, 028.txt, 029.txt, 030.txt, 031.txt, 032.txt, 033.txt, 034.txt, 035.txt, 036.txt, 037.txt, 038.txt, 039.txt, 040.txt, 041.txt, 042.txt, 043.txt, 044.txt, 045.txt, 046.txt, 047.txt, 048.txt, 049.txt, 050.txt, 051.txt, 052.txt, 053.txt, 054.txt, 055.txt, example0.txt, example1.txt, example2.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 000.txt | AC | 26 ms | 4248 KiB |
| 001.txt | AC | 24 ms | 4236 KiB |
| 002.txt | AC | 1 ms | 3668 KiB |
| 003.txt | AC | 11 ms | 3700 KiB |
| 004.txt | AC | 23 ms | 4044 KiB |
| 005.txt | AC | 4 ms | 3796 KiB |
| 006.txt | AC | 2 ms | 3876 KiB |
| 007.txt | AC | 3 ms | 3892 KiB |
| 008.txt | AC | 2 ms | 4000 KiB |
| 009.txt | AC | 2 ms | 3916 KiB |
| 010.txt | AC | 2 ms | 4068 KiB |
| 011.txt | AC | 2 ms | 4120 KiB |
| 012.txt | AC | 2 ms | 4064 KiB |
| 013.txt | AC | 2 ms | 4064 KiB |
| 014.txt | AC | 2 ms | 4048 KiB |
| 015.txt | AC | 2 ms | 4196 KiB |
| 016.txt | AC | 18 ms | 3880 KiB |
| 017.txt | AC | 13 ms | 3780 KiB |
| 018.txt | AC | 28 ms | 3988 KiB |
| 019.txt | AC | 9 ms | 3724 KiB |
| 020.txt | AC | 21 ms | 4036 KiB |
| 021.txt | AC | 32 ms | 4236 KiB |
| 022.txt | AC | 32 ms | 4244 KiB |
| 023.txt | AC | 32 ms | 4236 KiB |
| 024.txt | AC | 32 ms | 4312 KiB |
| 025.txt | AC | 33 ms | 4192 KiB |
| 026.txt | AC | 9 ms | 3696 KiB |
| 027.txt | AC | 8 ms | 3688 KiB |
| 028.txt | AC | 9 ms | 3704 KiB |
| 029.txt | AC | 4 ms | 3700 KiB |
| 030.txt | AC | 4 ms | 3756 KiB |
| 031.txt | AC | 3 ms | 3728 KiB |
| 032.txt | AC | 8 ms | 3692 KiB |
| 033.txt | AC | 9 ms | 3756 KiB |
| 034.txt | AC | 10 ms | 3760 KiB |
| 035.txt | AC | 4 ms | 3596 KiB |
| 036.txt | AC | 5 ms | 3720 KiB |
| 037.txt | AC | 4 ms | 3836 KiB |
| 038.txt | AC | 9 ms | 3780 KiB |
| 039.txt | AC | 12 ms | 3832 KiB |
| 040.txt | AC | 8 ms | 3692 KiB |
| 041.txt | AC | 5 ms | 3772 KiB |
| 042.txt | AC | 4 ms | 3744 KiB |
| 043.txt | AC | 5 ms | 3784 KiB |
| 044.txt | AC | 9 ms | 3764 KiB |
| 045.txt | AC | 12 ms | 3812 KiB |
| 046.txt | AC | 14 ms | 3860 KiB |
| 047.txt | AC | 5 ms | 3808 KiB |
| 048.txt | AC | 6 ms | 3824 KiB |
| 049.txt | AC | 6 ms | 4000 KiB |
| 050.txt | AC | 11 ms | 3820 KiB |
| 051.txt | AC | 14 ms | 3808 KiB |
| 052.txt | AC | 13 ms | 3908 KiB |
| 053.txt | AC | 5 ms | 3944 KiB |
| 054.txt | AC | 7 ms | 3960 KiB |
| 055.txt | AC | 6 ms | 3860 KiB |
| example0.txt | AC | 1 ms | 3416 KiB |
| example1.txt | AC | 1 ms | 3504 KiB |
| example2.txt | AC | 1 ms | 3636 KiB |