Submission #626600

#TimeUsernameProblemLanguageResultExecution timeMemory
626600whynotshadowCatfish Farm (IOI22_fish)C++17
3 / 100
87 ms7288 KiB
#include "fish.h" #include <bits/stdc++.h> using namespace std; #define ll long long const ll N=3e5+9; const ll INF=1e9; ll used[N]; ll dp[N][3]; long long max_weights(int N, int M, std::vector<int> X, std::vector<int> Y, std::vector<int> W) { ll ans=0,cnt=0,cntt=0,cnt2=0,sum1=0,sum2=0; for(auto to:W){ ans+=to; } for(auto to:X){ if(to&1) cnt++; if(to<=1) cntt++; } for(auto to:Y){ if(to==0) cnt2++; } if(cnt==0) return ans; else if(cnt2==M){ for(ll i=0; i<N; i++){ used[i]=0; dp[i][0]=dp[i][1]=0; } for(ll i=0;i<M;i++){ used[X[i]]=W[i]; } dp[-1][0]=dp[-1][1]=0; /// 0 - used, 1 - free for(ll i=0;i<N;i++){ if(i==0){ dp[i][0]=used[i+1],dp[i][1]=0; continue; } else{ dp[i][0]=max({dp[i-1][0]-used[i],dp[i-2][0]+used[i-1],dp[i-2][1]})+used[i+1]; dp[i][1]=max(dp[i-1][1],dp[i-1][0]); } } return max(dp[N-1][1],dp[N-1][0]); } else if(cntt==M){ for(ll i=0; i<M; i++){ if(X[i]==0) sum1+=W[i]; else sum2+=W[i]; } return max(sum1,sum2); } }

Compilation message (stderr)

fish.cpp: In function 'long long int max_weights(int, int, std::vector<int>, std::vector<int>, std::vector<int>)':
fish.cpp:51:1: warning: control reaches end of non-void function [-Wreturn-type]
   51 | }
      | ^
fish.cpp:30:20: warning: array subscript -1 is below array bounds of 'long long int [300009][3]' [-Warray-bounds]
   30 |     dp[-1][0]=dp[-1][1]=0;
      |               ~~~~~^
fish.cpp:8:4: note: while referencing 'dp'
    8 | ll dp[N][3];
      |    ^~
fish.cpp:30:10: warning: array subscript -1 is below array bounds of 'long long int [300009][3]' [-Warray-bounds]
   30 |     dp[-1][0]=dp[-1][1]=0;
      |     ~~~~~^
fish.cpp:8:4: note: while referencing 'dp'
    8 | ll dp[N][3];
      |    ^~
#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...