Help me in solving MOONSOON problem

My issue

My code

#include <bits/stdc++.h>
using namespace std;

int main() {
	// your code goes here
	int t;
	cin>>t;
	while(t--){
	   int n,m,h;
	   cin>>n>>m>>h;
	  long long int sum=0;
	   multiset<long long int>a,b;
	   for(int i=1;i<n+1;i++){
	       int j;
	       cin>>j;
	       a.insert(-1*j);
	   }
	    for(int i=1;i<m+1;i++){
	       int j;
	       cin>>j;
	       b.insert(-1*j*h);
	   }
	   multiset<long long int> :: iterator p1,p2;
	   p2=b.begin();
	  
	   for (p1=a.begin();p1!=a.end();p1++){
	     if((p2)!=b.end())  
	     {
	         if((*p1)<(*p2)){ 
	           sum=sum+abs(*p2);
	       }
	       
	       else if((*p1)>=(*p2)) {
	           sum=sum+abs((*p1));
	       }
	        p2++;}
	   }
	   cout<<sum<<endl;
	}
	return 0;
}

Problem Link: MOONSOON Problem - CodeChef

where is the error in this code