Submission #425545

#TimeUsernameProblemLanguageResultExecution timeMemory
425545chirathnirodhaJelly Flavours (IOI20_jelly)C++17
59 / 100
208 ms186564 KiB
//Coded by Chirath Nirodha #include<bits/stdc++.h> using namespace std; #include "jelly.h" #define MP make_pair #define PB push_back #define F first #define S second typedef long long ll; bool sub4(vector<int> v){ for(int i=1;i<v.size();i++)if(v[i]!=v[i-1])return false; return true; } bool sub5(vector<int> v,vector<int> w){ for(int i=0;i<v.size();i++)if(v[i]!=w[i])return false; return true; } int find_maximum_unique(int x, int y, vector<int> a, vector<int> b) { int n = a.size(); if(n<=200 && x<=500 && y<=500){ int dp[n+1][x+1][y+1]; for(int i=0;i<=x;i++)for(int j=0;j<=y;j++)dp[0][x][y]=0; for(int i=1;i<=n;i++){ for(int j=0;j<=x;j++){ for(int k=0;k<=y;k++){ dp[i][j][k]=dp[i-1][j][k]; if(j-a[i-1]>=0)dp[i][j][k]=max(dp[i][j][k],dp[i-1][j-a[i-1]][k]+1); if(k-b[i-1]>=0)dp[i][j][k]=max(dp[i][j][k],dp[i-1][j][k-b[i-1]]+1); } } } return dp[n][x][y]; } else if(sub4(b)){ int dp2[n+1][x+1]; for(int i=0;i<=x;i++)dp2[0][i]=0; for(int i=1;i<=n;i++){ for(int j=0;j<=x;j++){ dp2[i][j]=dp2[i-1][j]; if(j-a[i-1]>=0)dp2[i][j]=max(dp2[i][j],dp2[i-1][j-a[i-1]]+1); } } int ans=dp2[n][x]; ans=min(n,ans+y/b[0]); return ans; } else if(sub5(a,b)){ x+=y; int dp3[n+1][x+1]; for(int i=0;i<=x;i++)dp3[0][i]=0; for(int i=1;i<=n;i++){ for(int j=0;j<=x;j++){ dp3[i][j]=dp3[i-1][j]; if(j-a[i-1]>=0)dp3[i][j]=max(dp3[i][j],dp3[i-1][j-a[i-1]]+1); } } return dp3[n][x]; } return n; }

Compilation message (stderr)

jelly.cpp: In function 'bool sub4(std::vector<int>)':
jelly.cpp:12:15: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   12 |  for(int i=1;i<v.size();i++)if(v[i]!=v[i-1])return false;
      |              ~^~~~~~~~~
jelly.cpp: In function 'bool sub5(std::vector<int>, std::vector<int>)':
jelly.cpp:16:15: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   16 |  for(int i=0;i<v.size();i++)if(v[i]!=w[i])return false;
      |              ~^~~~~~~~~
#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...