제출 #1320595

#제출 시각아이디문제언어결과실행 시간메모리
1320595ezzzay메기 농장 (IOI22_fish)C++17
0 / 100
1002 ms2162688 KiB
#include "fish.h" #include<bits/stdc++.h> using namespace std; #include <vector> #define ll long long #define ff first #define ss second #define pb push_back vector<pair<ll,ll>>vc[500]; long long max_weights(int N, int M, std::vector<int> X, std::vector<int> Y,std::vector<int> W) { vector< vector<ll>> dp(N+10, vector<ll>(N+10)); for(int i=0;i<=N;i++)vc[i].clear(); for(int i=0;i<M;i++){ vc[X[i]+1].pb({Y[i]+1,W[i]}); } vector<vector<vector<ll>>> ps(N+10, vector<vector<ll>>(N+10, vector<ll>(N+10) ) ); for(int i=1;i<=N;i++){ for(int l=1;l<=N;l++){ int s=0; int idx=0; for(int r=l;r<=N;r++){ while(idx<vc[i].size() and vc[i][idx].ff<=r){ s+=vc[i][idx++].ss; } ps[i][l][r]=s; } } } ll mx=0; for(int i=1;i<=N;i++){ for(int j=0;j<=N;j++){ for(int k=0;k<=N;k++){ int l=min(i,j),r=max(i,j); dp[i][j]=max(dp[i][j],dp[i-1][j]+ps[i-1][1][r]-ps[i-1][1][l-1]); if(i>=2)dp[i][j]=max(dp[i][j],dp[i-2][j]+ps[i-1][1][r]); mx=max(mx,dp[i][j]); } } } return mx; }
#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...