Submission #626603

#TimeUsernameProblemLanguageResultExecution timeMemory
626603KaitokidCatfish Farm (IOI22_fish)C++17
23 / 100
1092 ms36312 KiB
#include<bits/stdc++.h> using namespace std; typedef long long ll; int mx; ll dp[100009][3][2]; vector<int>g[100009],f[300009]; ll go(int x,int lst,int u) { if(x==mx)return 0; if(dp[x][lst][u]!=-1)return dp[x][lst][u]; for(int i=0;i<g[x].size();i++) { ll d=0; if((u==0) && g[x][i]>g[x-1][lst]) { for(int j=0;j<g[x-1].size();j++) if(g[x-1][j]>=g[x-1][lst] && g[x-1][j]<g[x][i])d+=f[x-1][j]; } dp[x][lst][u]=max(dp[x][lst][u],d+go(x+1,i,0)); for(int j=0;j<g[x].size();j++) if(g[x][j]<g[x-1][lst] && g[x][j]>=g[x][i])d+=f[x][j]; dp[x][lst][u]=max(dp[x][lst][u],d+go(x+1,i,1)); } return dp[x][lst][u]; } ll max_weights(int N,int M,vector<int>X,vector<int>Y,vector<int>W) { mx=N; for(int i=0;i<M;i++) { g[X[i]].push_back(Y[i]+1); f[X[i]].push_back(W[i]); } for(int i=0;i<N;i++) { g[i].push_back(N+1);f[i].push_back(0); } memset(dp,-1,sizeof dp); ll ans=0; for(int i=0;i<g[0].size();i++) ans=max(ans,go(1,i,0)); return ans; }

Compilation message (stderr)

fish.cpp: In function 'll go(int, int, int)':
fish.cpp:11:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   11 |     for(int i=0;i<g[x].size();i++)
      |                 ~^~~~~~~~~~~~
fish.cpp:16:30: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   16 |                 for(int j=0;j<g[x-1].size();j++)
      |                             ~^~~~~~~~~~~~~~
fish.cpp:21:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   21 |         for(int j=0;j<g[x].size();j++)
      |                     ~^~~~~~~~~~~~
fish.cpp: In function 'll max_weights(int, int, std::vector<int>, std::vector<int>, std::vector<int>)':
fish.cpp:43:18: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   43 |     for(int i=0;i<g[0].size();i++)
      |                 ~^~~~~~~~~~~~
fish.cpp:43:5: warning: this 'for' clause does not guard... [-Wmisleading-indentation]
   43 |     for(int i=0;i<g[0].size();i++)
      |     ^~~
fish.cpp:45:8: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'for'
   45 |        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...