Submission #431471

#TimeUsernameProblemLanguageResultExecution timeMemory
431471charterlaJelly Flavours (IOI20_jelly)C++14
59 / 100
72 ms424 KiB
#include "jelly.h"
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;

vector<int> A,B;
int tag[2005];
bool cmp(int a,int b){
	return A[a]<A[b];
}

int find_maximum_unique(int x, int y, vector<int> a, vector<int> b){
	A=a;B=b;
	for(int i=0;i<A.size();i++)tag[i]=i;
	sort(tag,tag+A.size(),cmp);
	//for(int i=0;i<A.size();i++)cout<<i<<":<"<<tag[i]<<">->"<<A[tag[i]]<<" ";cout<<endl;
	
	int f[10005][2],ans=0;
	for(int j=0;j<=y;j++){f[j][0]=0;f[j][1]=x;}
	
	for(int k=0;k<a.size();k++){
		for(int j=y;j>=0;j--){
			if(f[j][1]>=a[tag[k]]){
				f[j][0]=f[j][0]+1;
				f[j][1]-=a[tag[k]];
			}
			if(j>=b[tag[k]]){
				if(f[j-b[tag[k]]][0]+1==f[j][0]){
					if(f[j-b[tag[k]]][1]>f[j][1]){
						f[j][0]=f[j-b[tag[k]]][0]+1;
						f[j][1]=f[j-b[tag[k]]][1];
					}
				}
				else{
					if(f[j-b[tag[k]]][0]+1>f[j][0]){
						f[j][0]=f[j-b[tag[k]]][0]+1;
						f[j][1]=f[j-b[tag[k]]][1];
					}
				}
			}
			
			ans=max(ans,f[j][0]);
		}
		//cout<<a[tag[k]]<<","<<b[tag[k]]<<": ";for(int j=0;j<=y;j++)cout<<f[j][0]<<","<<f[j][1]<<" ";cout<<endl;
	}
	
	return ans;
}

Compilation message (stderr)

jelly.cpp: In function 'int find_maximum_unique(int, int, std::vector<int>, std::vector<int>)':
jelly.cpp:15:15: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   15 |  for(int i=0;i<A.size();i++)tag[i]=i;
      |              ~^~~~~~~~~
jelly.cpp:22:15: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   22 |  for(int k=0;k<a.size();k++){
      |              ~^~~~~~~~~
#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...