제출 #1289921

#제출 시각아이디문제언어결과실행 시간메모리
1289921MMihalev메기 농장 (IOI22_fish)C++20
9 / 100
26 ms10044 KiB
#include<iostream> #include<algorithm> #include<vector> #include "fish.h" using namespace std; const int MAX_N=1e5+5; int n,m; vector<int>x,y,w; vector<pair<int,long long>>cells[MAX_N];//rows,weight long long dp[MAX_N]; long long max_weights(int N, int M, std::vector<int> X, std::vector<int> Y,std::vector<int> W) { n=N; m=M; x=X; y=Y; w=W; for(int i=0;i<m;i++) { cells[x[i]].push_back({y[i],w[i]}); } for(int i=0;i<n;i++) { sort(cells[i].begin(),cells[i].end()); } long long ans=0; for(int i=1;i<n;i++) { dp[i]=max((cells[i-1].size()>0 ? cells[i-1][0].second : 0),dp[i-1]); if(i-2>=0) { dp[i]=max(dp[i],dp[i-2]+(cells[i-1].size()>0 ? cells[i-1][0].second : 0)); } if(i-3>=0) { dp[i]=max(dp[i],dp[i-3]+(cells[i-1].size()>0 ? cells[i-1][0].second : 0)+ (cells[i-2].size()>0 ? cells[i-2][0].second : 0)); } } ans=dp[n-1]; ans=max(ans,dp[n-2]+(cells[n-1].size()>0 ? cells[n-1][0].second : 0)); if(n>=3)ans=max(ans,dp[n-3]+(cells[n-2].size()>0 ? cells[n-2][0].second : 0)); return ans; }
#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...