Submission #1042015

#TimeUsernameProblemLanguageResultExecution timeMemory
1042015VMaksimoski008Catfish Farm (IOI22_fish)C++17
12 / 100
46 ms7292 KiB
#include "fish.h" #include <bits/stdc++.h> using namespace std; using ll = long long; ll max_weights(int N, int M, vector<int> X, vector<int> Y, vector<int> W) { int mask = 0, mx = 0; for(int i=0; i<M; i++) mask |= (1 << (X[i] % 2)); for(int i=0; i<M; i++) mx = max(mx, Y[i]); if(mask == 1) { ll ans = 0; for(int &x : W) ans += x; return ans; } if(mx == 0) { vector<ll> val(N+5), dp(N+5); for(int i=0; i<M; i++) val[X[i]] = W[i]; ll ans = 0; vector<ll> MX(N+5); MX[0] = val[1]; //dp[i] - poslednata kula e na i for(int i=1; i<N; i++) { dp[i] = max(dp[i-1], val[i-1]); if(i >= 3) dp[i] = max(dp[i], MX[i-3] + val[i-1]); // for(int j=i-3; j>=0; j--) dp[i] = max(dp[i], val[i-1] + dp[j] + val[j+1]); if(i >= 2) dp[i] = max(dp[i], dp[i-2] + val[i-1]); MX[i] = max(MX[i-1], dp[i] + val[i+1]); } // for(int i=0; i<N; i++) cout << val[i] << " "; // cout << '\n'; // for(int i=0; i<N; i++) cout << dp[i] << " "; // cout << '\n'; for(int i=0; i<N; i++) ans = max(ans, dp[i] + val[i+1]); return ans; } return 0; }
#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...