When i am using min Heap then there is no need to reverse the final ans vector but it gives me Wrong Answer I am not getting it why?
Blockquote
void solve(){
int k , Q;
cin >> k >> Q;
vi s(k);
vi m(k);
for(int i =0;i<k;i++)
cin>>m[i];
for(int i =0;i<k;i++)
cin>>s[i];
sort(m.begin(),m.end());
sort(s.begin(),s.end());
// pqi means priority queue increasing/(min heap)
pqi pq;
vi ans;
for(int i = 0 ;i<k;i++)
{
for(int j = 0;j<k;j++)
{
if(pq.size() < 10000)
pq.push(m[i] + s[j]);
else if(pq.top() > m[i]+s[j])
{
pq.pop();
pq.push(m[i]+s[j]);
}
else
{
break;
}
}
}
while(!pq.empty())
{
ans.push_back(pq.top());
pq.pop();
}
while(Q--)
{
int qi;cin>>qi;
cout<<ans[qi-1]<<'\n';
}
}
Blockquote