제출 #931352

#제출 시각아이디문제언어결과실행 시간메모리
931352vjudge1Fruits (NOI22_fruits)C++17
6 / 100
1064 ms14420 KiB
#include <bits/stdc++.h> using namespace std; #define int long long #define all(x) x.begin(), x.end() const int N = 5e5+5, M = 5e3+3, inf = LLONG_MAX; int n, a[N], c[N], ans[N]; bitset<N> vis; signed main() { ios::sync_with_stdio(false); cin.tie(nullptr); cin >> n; memset(ans, 0, sizeof(ans)); for (int i = 0; i < n; i++) { cin >> a[i]; if (a[i] != -1) { a[i]--; vis[a[i]] = 1; } } for (int i = 0; i < n; i++) { cin >> c[i]; } vector<int> v(n); for (int i = 0; i < n; i++) v[i] = i; do { int x = 0; int mx = -1; for (int i = 0; i < n; i++) { if ((vis[v[i]] || a[i] != -1) && a[i] != v[i]) break; if (mx < v[i]) { x += c[v[i]]; mx = v[i]; } ans[i] = max(ans[i], x); } } while (next_permutation(all(v))); for (int i = 0; i < n; i++) { cout << ans[i] << " "; } cout << "\n"; }
#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...