# 2 arrays

Problem:-

You are given

$2$

arrays

$A$

and

$B$

, each of the size

$N$

. Each element of these arrays is either a positive integer or

$-1$

. The total number of

$-{1}^{\prime }s$

that can appear over these

$2$

arrays are

$\ge 1$

and

$\le 2$

.

Now, you need to find the number of ways in which we can replace each

$-1$

with a non-negative integer, such that the sum of both of these arrays is equal.

Input format

• First line: An integer
$N$

• Second line:
$N$

space-separated integers, where the of these denotes

$A\left[i\right]$

• Third line:
$N$

space-separated integers, where the

${i}^{th}$

of these denotes

$B\left[i\right]$

Output format

If there exists a finite number

$X$

, then print it. If the answer is not a finite integer, then print ‘Infinite‘.

Constraints

$1\le N\le {10}^{5}$

$-1\le A\left[i\right],B\left[i\right]\le {10}^{9}$

The

$-{1}^{\prime }s$

may spread out among both arrays, and their quantity is between

$1$

and

$2$

(both inclusive)

Sample Input 2

`41 2 -1 43 3 -1 1`

Sample Output 2

`Infinite`
Sample Input
`41 2 -1 43 3 3 1`
Sample Output
`1`
Time Limit: 1
Memory Limit: 256
Source Limit:
Explanation

We can replace the only

$-1$

by

$3$

, so that the sum of both of these arrays become

$10$

.

Code:-

#include<stdio.h>
int main()
{
long int n,i,flag1=0,flag2=0;
scanf(“%ld”,&n);
long long int element,sum1=0,sum2=0;
for(i=0;i<n;i++)
{
scanf(“%lld”,&element);
if(element==-1)
flag1++;
else
sum1=sum1+element;
}
for(i=0;i<n;i++)
{
scanf(“%lld”,&element);
if(element==-1)
flag2++;
else
sum2=sum2+element;
}
if(flag1==flag2 && flag1==1)
printf(“Infinite”);
else{
if(flag1>flag2)
{
if(sum1>sum2)
printf(“0”);
else{
if(flag1==1 && flag2==0)
printf(“1”);
else
printf(“55”);
}
}
else
{
if(sum1<sum2)
printf(“0”);
else{
if(flag2==1 && flag1==0)
printf(“1”);
else
printf(“55”);
}
}

}

return 0;
}