Computer Science, asked by mrmyselfsherlocked, 1 year ago

Sachin likes sweets a lot. So, he goes to a market of sweets. There is a row of sweet stalls. Every sweet stall has different sweets. To save some time, he decided to buy sweets from contiguous stalls. So, he can buy from as many stalls as he wants, but all of those stalls need to be contiguous. He also decided to buy only 1 kg of sweets from each of those stalls. Cost of 1 kg of sweets for each stall is given. There is a strange rule of billing in that market.

And that rule is as follows-

Total cost of all sweets bought is sum of the cost of all sweets multiplied by the cost of sweet he bought at the end. e.g. if he buys sweets having cost 2, 3, 4 in the same order than total cost of sweets will be 2*4+3*4+4*4=36. Now he wonders what will be the total cost of all possible ways of buying sweets. Can you help him. Because this number could be large, you should take modulo of the final result by 10^9+7.


Input Format
A One dimensional Integer array of Size N in which ith element denotes the cost of 1 kg sweets from ith stall.
First line of input contains an Integer N denoting the size of Array.
Next N lines of input each containing a single integer from 1 to 9.


Constraints
1 <= N <= 10^5
1 <= A[i] <= 9


Output Format
You must return an integer- sum of the cost of all possible ways of buying sweets modulo 10^9+7.


Sample TestCase 1
Input

3
1
2
3
Output

53
Explanation

Possible ways of buying sweets are- a) 1 b) 1 2 c) 2 d) 1 2 3 e) 2 3 f) 3 cost of each of these is following- a) 1*1= 1 b) 1*2+2*2= 6 c) 2*2= 4 d) 1*3+2*3+3*3= 18 e) 2*3+3*3= 15 f) 3*3= 9 Hence total cost will be 1+6+4+18+15+9=53.


I am not getting the expected output which is    '53'.
Can anyone help me out?

thanks in advance!

Answers

Answered by Sidyandex
6

Here we assume that the total value of all the product is "x" which means the number we are looking for is "ax + bx + cx" since this is the product of the prices which is equal to (a + b + c) x => x * x.

So the numbers have to be added and then we can get "x"

Answered by likithsai05
0

Answer:

import java.util.Scanner;

public class xyz {

public static void main(String[] args)

{

Scanner scan = new Scanner(System.in);

int N,i,j,k,s=0,c;

N=scan.nextInt();

if(N>0&&N<10000)

{

int a[]=new int[N];

c=0;

for(i=0;i<N;i++)

{

System.out.print("enter cost of sweet in "+ (i+1) +"th stall:\n");

a[i]=scan.nextInt();

if(a[i]>9||a[i]<1)

c++;

}

if(c==0)

{

for(j=1;j<=N;j++)

{

for(k=j;k<=N;k++)

{

for(i=j;i<=k;i++)

{

s=s+a[i-1]*a[k-1];

}

}

}

System.out.print(s%1000000007);

}

}

}

}

Explanation:

Similar questions