제출 #1305698

#제출 시각아이디문제언어결과실행 시간메모리
1305698vtnooCatfish Farm (IOI22_fish)C++20
0 / 100
28 ms4108 KiB
#include <bits/stdc++.h> #define pb push_back #define fst first #define snd second #define fore(i,a,b) for(int i=a,pao=b;i<pao;++i) #define SZ(x) ((int)x.size()) #define ALL(x) x.begin(),x.end() #define mset(a,v) memset((a),(v),sizeof(a)) #define FIN ios::sync_with_stdio(0);cin.tie(0);cout.tie(0) using namespace std; typedef long long ll; const int MAXN=300,MAXY=10; ll pref[MAXN][MAXY]; long long max_weights(int N, int M, std::vector<int> X, std::vector<int> Y, std::vector<int> W) { int lim=*max_element(ALL(Y))+1; fore(i,0,M){ pref[X[i]][Y[i]+1]+=W[i]; } fore(i,0,N){ fore(j,1,lim+1){ pref[i][j]+=pref[i][j-1]; } } vector<vector<ll>>dp(10,vector<ll>(10,0)); fore(l,0,10)fore(r,0,10){ dp[l][r]=pref[0][r]-pref[0][l]; } fore(i,1,N-1){ vector<vector<ll>>ndp(10,vector<ll>(10,0)); fore(l,0,10){ fore(m,0,10){ fore(r,0,10){ ndp[m][r]=max(ndp[m][r],dp[l][m]+(pref[i][max(l,r)]-pref[i][m])); } } } dp.swap(ndp); } ll ans=0; fore(l,0,10)fore(r,0,10){ ans=max(ans,dp[l][r]+(pref[N-1][l]-pref[N-1][r])); } 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...