Submission #724144

#TimeUsernameProblemLanguageResultExecution timeMemory
724144ismayilCatfish Farm (IOI22_fish)C++17
9 / 100
59 ms9924 KiB
#pragma GCC optimize("O3") #include "fish.h" #include <bits/stdc++.h> #define ll long long #define endl '\n' using namespace std; const ll INF = 3e14 + 4; ll max_weights(int N, int M, vector<int> X, vector<int> Y, vector<int> W) { int flag = 0; for(int i = 0; i < M; i++){ if(Y[i] != 0){ flag = 1; } } if(!flag){ ll dp[N][2], a[N]; memset(dp, 0, sizeof(dp)); memset(a, 0, sizeof(a)); for(int i = 0; i < M; i++) a[X[i]] += W[i]; dp[1][0] = a[1]; dp[1][1] = a[0]; for(int i = 2; i < N; i++){ dp[i][0] = max(dp[i - 1][1] + a[i], dp[i - 1][0]); dp[i][1] = max(max(dp[i - 2][0] + a[i - 1], dp[i - 1][1]), dp[i - 2][1] + a[i - 1]); } return max(dp[N - 1][0], dp[N - 1][1]); } ll ans[N + 1][2]; memset(ans, 0, sizeof(ans)); for(int i = 0; i < M; i++){ ans[Y[i] + 1][X[i]] = W[i]; } for(int i = 1; i <= N; i++){ ans[i][0] += ans[i - 1][0]; ans[i][1] += ans[i - 1][1]; } ll res = 0; for (int i = 1; i <= N; i++) { res = max(res, ans[i - 1][0] + (ans[N][1] - ans[i - 1][1])); } return res; }
#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...