β Least Subarrays(Contest)
Least Subarrays easy Time Limit: 2 sec Memory Limit: 128000 kB
```java
import java.io.*; // for handling input/output
import java.util.*; // contains Collections framework
// don't change the name of this class
// you can add inner classes if needed
class Main {
public static void main (String[] args) {
Scanner sc = new Scanner(System.in);
int t = Integer.parseInt(sc.nextLine());
String[] nums;
while(t-->0){
nums=sc.nextLine().split(" ");
int n = Integer.parseInt(nums[0]);
int m = Integer.parseInt(nums[1]);
nums = sc.nextLine().split(" ");
int[] arr1 =new int[n];
for(int i=0;i<n;i++){
arr1[i]=Integer.parseInt(nums[i]);
}
nums = sc.nextLine().split(" ");
int[] arr2 = new int[m];
for(int i=0;i<m;i++){
arr2[i]= Integer.parseInt(nums[i]);
}
long s = Long.parseLong(sc.nextLine());
int len =Math.min(n,m);
int ans = -1;
int l =0, r =len;
while(l<=r){
int k= (l+r)/2;
long sum1=0,sum =0;
for(int j=0;j<n;j++){
sum=sum+arr1[j];
if(j>=k) sum = sum-arr1[j-k];
sum1=Math.max(sum1,sum);
}
sum=0;
long sum2 =0;
for(int j=0;j<m;j++){
sum=sum+arr2[j];
if(j>=k) sum = sum- arr2[j-k];
sum2=Math.max(sum2,sum);
}
if(sum1*sum2>=s){
ans=k;
r=k-1;
}else{
l=k+1;
}
}
System.out.println(ans);
}
}
}
```Last updated