Buongiorno, sottoponendo il mio programma mi da 65/100 per via di due Output non corretti nell’ultimo subtask, li sto cercando da un pò ma non riesco ad individuare quali sono i casi in cui il mio codice sbaglia, se qualcuno di voi riesce ad individuarli mi darebbe una grande mano.
Lascio qui il mio codice, se qualcuno avesse bisogno di chiarimenti mi scriva senza problemi,grazie in anticipo!
#include <bits/stdc++.h>
using namespace std;
int main(){
int N;
cin>>N;
vector<int>v(N);
unordered_map<int,int>cont;
for(int i=0;i<N;i++){
cin>>v[i];
cont[v[i]]++;
}
set<int>s;
for(auto i : cont){
s.insert(i.second);
}
/*for(auto i : s){
cout<<i<<" ";
}*/
int sol=0;
auto it=s.begin();
while(it!=s.end()){
unordered_map<int,int>m;
for(int i=0;i<N;i++){
if(v[i]!=-1){
m[v[i]]++;
if(cont[v[i]]==*it){
v[i]=-1;
}
}
else{
int mi=100005,mx=0;
for(auto j : m){
mi=min(mi,j.second);
mx=max(mx,j.second);
}
sol=max(sol,mi*mx);
m.clear();
}
}
if(m.empty()==false){
int mi=100005,mx=0;
for(auto j : m){
mi=min(mi,j.second);
mx=max(mx,j.second);
}
sol=max(sol,mi*mx);
m.clear();
}
//cout<<*it<<" : "<<sol<<"\n";
it++;
}
cout<<sol;
}