# Help Me In Increasing Array CSES

Please Help Me In `Increasing Array` CSES I Am Not Able To Understand The Question
Question Link: CSES - Increasing Array

You have to make the array increasing i.e. modify the array such that A_i \le A_{i+1} \ \forall \ 1 \le i <N using a minimum number of operations and an operation means adding 1 to any element of the array, for example, consider the sample given in the problem.
Initial array:
A = 3 2 5 1 7
Array obtained after modifications
A= 3 3 5 5 7
Here we performed 1 operation on 2nd element, 4 operations on 4th element and 0 operations on all other elements so total number of operations = 1+4=5 and it can be proven that this is the minimum number of operations that you need to perform.

1 Like

Thanks @cubefreak777

https://cses.fi/paste/bd6c241d1bb5736121e3b2/
Its Showing Wrong Answer On Some Test Cases

checkout this test case-

``````5
5 1 2 1 3
required output = 13
``````

Hint:- use the fact that max(v[0],v[i])<=v[i]

What went wrong?

``````if(a[i - 1] >= a[i]) {
count += a[i - 1] - a[i];
a[i] = a[i - 1]; // Additional statement
}
``````

What could have gone wrong?

``````int count = 0;
long count = 0; // Correction
``````

### Test details

#### Test 1

Verdict: ACCEPTED

input
10
1 1 1 1 1 1 1 1 1 1

correct output
0

user output
0

#### Test 2

input
10
1000000000 1 1 1 1 1 1 1 1 1

correct output
8999999991

user output
999999999

#### Test 3

input
10
6 10 4 10 2 8 9 2 7 7

correct output
31

user output
21

#### Test 4

Verdict: ACCEPTED

input
200000
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 â€¦

correct output
0

user output
0

#### Test 5

input
200000
1000000000 1 1 1 1 1 1 1 1 1 1â€¦

correct output
199998999800001

user output
999999999

#### Test 6

input
200000
763977854 530688450 486447012 â€¦

correct output
100126194120455

user output
165085756

#### Test 7

Verdict: ACCEPTED

input
1
329873232

correct output
0

user output
0

I have pasted testcases please check

brother if you put this logic then you got the worng ansâ€¦ bcz if you test for suppose 42531

then 4-2=2
then 2<5 condition false
then 5-3=2
then here is logic goes wrong if we see there is condition true
3>1 then 3-1=2
then the totle of cases is 6
but if see go according to queâ€¦ it must be 8 bcz after increment array become 44555
so we have to substract it by the incremented value â€¦

You might want to paste your code as well.

``````import java.util.Scanner;

public class Test {
public static void main(String[] args){
Scanner scin = new Scanner(System.in);
int t = scin.nextInt();
int[] a = new int[t];
int count = 0;
for (int i = 0 ; i < t ; i++){
int k = scin.nextInt();
a[i]=k;
}
for (int i = 1; i < t; i++){
if (a[i-1]>=a[i]){
count+=a[i-1]-a[i];
}
}
System.out.println(count);
}
}

``````

@bharat81091 Welcome! To Codechef Discuss, Could You Please Share The Code Cause We Have To Tell The Incremented Value I Did That But Its Wrong

Sample code

``````ll ans = 0,maxi = a[0];
for(ll i=1;i<n;i++){
maxi = max(maxi,a[i]);
ans+=maxi-a[i];
}
cout<<ans;
``````
1 Like

Dude, I already mentioned the changes.

1 Like

(post withdrawn by author, will be automatically deleted in 24 hours unless flagged)

Find it yourself.

Ok

import java.util.Scanner;

class Codechef
{
public static void main(String []arg)
{
Scanner sc=new Scanner(System.in);
System.out.println(â€śentee the sixe of arrayâ€ť);
int n=sc.nextInt();
int a[]=new int[n];
int count=0;
for(int i=0;i<n;i++)
{
a[i]=sc.nextInt();
}
for(int b:a)
{
System.out.print(b);

``````	}

for(int i=1;i<n;i++)
{
if(a[i-1]>a[i])
{
while(a[i]!=a[i-1])
{
a[i]=a[i]+1;
count++;
}
}
}

System.out.println(count);

}
``````

}