Submission #1305739

#TimeUsernameProblemLanguageResultExecution timeMemory
1305739vtnoo메기 농장 (IOI22_fish)C++17
14 / 100
26 ms4116 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=305,MAXY=15; const ll INF=1e18; ll pref[MAXN][MAXY],dp[MAXN][MAXY][MAXY]; long long max_weights(int N, int M, std::vector<int> X, std::vector<int> Y, std::vector<int> W) { fore(i,0,M){ pref[X[i]+1][Y[i]+1]+=W[i]; } fore(i,0,N+1){ fore(j,1,10){ pref[i][j]+=pref[i][j-1]; //~ cout<<pref[i][j]<<" "; } //~ cout<<endl; } fore(i,0,N+1){ fore(j,0,10){ fore(k,0,10)dp[i][j][k]=-INF; } } ll ans=0; dp[0][0][0]=0; fore(i,1,N+1){ fore(l,0,10){ fore(m,0,10){ fore(r,0,10){ ll value=dp[i-1][l][m]; if(m>r)value+=pref[i][m]-pref[i][r]; if(max(l,m)<r)value+=pref[i-1][r]-pref[i-1][max(l,m)]; dp[i][m][r]=max(dp[i][m][r],value); //~ cout<<i<<" "<<l<<" "<<m<<" "<<r<<"="<<value<<endl; ans=max(ans,dp[i][m][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...