Submission #755144

#TimeUsernameProblemLanguageResultExecution timeMemory
755144Rafi22Rarest Insects (IOI22_insects)C++17
99.89 / 100
69 ms456 KiB
#include <bits/stdc++.h> #include "insects.h" using namespace std; #define endl '\n' #define st first #define nd second #define pb push_back #define sz(x) (int)(x).size() #define all(x) (x).begin(), (x).end() #define ll long long ll mod=1000000007; int inf=1000000007; ll infl=1000000000000000007; int ans=1,m; int DP[2007]; int co[2007]; /* int a[107]; map<int,int>ile; set<int>W; void move_inside(int i) { W.insert(i); } void move_outside(int i) { W.erase(i); } int press_button() { ile.clear(); int ans=0; for(auto x:W) ans=max(ans,++ile[a[x]]); return ans; } */ void rek(vector<int>a) { if(sz(a)<m) return ; int k=co[sz(a)]; vector<int>T,N; bool is=0; for(auto x:a) { move_inside(x); if(press_button()>ans+k) { move_outside(x); N.pb(x); } else T.pb(x); } if(sz(T)==m*k) { ans+=k; rek(N); } else { for(auto x:T) move_outside(x); rek(T); } } int min_cardinality(int n) { vector<int>V,X; for(int i=0;i<n;i++) { move_inside(i); if(press_button()>1) { move_outside(i); V.pb(i); } else { X.pb(i); m++; } } for(int i=m;i<=n;i++) { DP[i]=inf; for(int k=1;k*m<=i;k++) { if(max(DP[i-m*k],DP[m*k-1])+i<DP[i]) { co[i]=k; DP[i]=max(DP[i-m*k],DP[m*k-1])+i; } } } rek(V); return ans; } /* int main() { int n; cin>>n; for(int i=0;i<n;i++) cin>>a[i]; cout<<min_cardinality(n)<<endl; return 0; } /* 6 5 8 9 5 9 9 */

Compilation message (stderr)

insects.cpp:111:1: warning: "/*" within comment [-Wcomment]
  111 | /*
      |  
insects.cpp: In function 'void rek(std::vector<int>)':
insects.cpp:47:10: warning: unused variable 'is' [-Wunused-variable]
   47 |     bool is=0;
      |          ^~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...