×

CHFAR - EDITORIAL

Setter: Misha Chorniy
Editorialist: Taranpreet Singh

Simple

Basic Math.

PROBLEM:

Given a sequence $A$ of length $N$, by changing at most $K$ elements, can we make $A_1^2+A_2^2+A_3^2 \dots A_N^2 \leq A_1+A_2+A_3 \dots A_N$?

SUPER QUICK EXPLANATION

• Count number of $A[i] > 1$, say $C$. If $C \leq K$, we can achieve inequality, otherwise no.

EXPLANATION

First of all, It can be seen that for every integer $X$, $X \leq X^2$. So, we can prove that we can never achieve $A_1^2+A_2^2+A_3^2 \dots A_N^2 < A_1+A_2+A_3 \dots A_N$.

Only option is, to achieve $A_1^2+A_2^2+A_3^2 \dots A_N^2 == A_1+A_2+A_3 \dots A_N$.

Now, Let's find all integers, for which $X^2 == X$. We can find, that This holds for only $X = 0$ and $X = 1$. But we can assign only positive values to elements. Hence, to achieve this inequality, we need all elements to be 1.

Hence, just count the number of elements greater than 1 and if this count is $\leq K$, we can achieve this inequality, otherwise, we cannot achieve.

Challenge

Find any real value for which $X^2 < X$. Enjoy solving. :P

Time Complexity

Time complexity is $O(N)$ per test case.

AUTHOR'S AND TESTER'S SOLUTIONS:

Feel free to Share your approach, If it differs. Suggestions are always welcomed. :)

This question is marked "community wiki".

3.9k2791
accept rate: 22%

1

Challenge: All values lying in the interval $(0, 1)$.

(29 Oct '18, 22:27)

Perfect :)

Find real values for which $X^3 < X$. Enjoy :P

(29 Oct '18, 22:36)
1

All values lying in $(0, 1)$ or $(- \infty, -1)$.

(29 Oct '18, 22:43)

Seems like I'm running out of math challenges. :P

(29 Oct '18, 22:47)

Hehe......

(Added dots to make 10 characters needed for making a comment)

(29 Oct '18, 23:04)

The Time Complexity is going to O(n)

According to the solution you are providing -

For all integers we have to check -
( x != 1 )

which will take O(n) time !
(if we check in linear fashion)


412
accept rate: 0%

Thanks for catching. I missed it up. Corrected now :)

(01 Nov '18, 19:41)
 1 any real number lying between 0 and 1 answered 29 Oct '18, 23:46 11●1 accept rate: 0%
 0 Minimum value for k is 1 ,$1 \leq K \leq N \leq 10^4$ So if initially suppose all numbers are one,for eg. $n=3$ $k=2$ $A=\{1,1,1\}$ Now because minimum value of k is 1 not zero so in all cases we have to consider value of k=1 But non $1$ number count is zero as all three numbers are $1$ from example above. so according to your solution result should be YES. But as we have to consider at least $k=1$ So your solution fails as changing any of the three 1's to other value will not yield the desired result. Please reply if i am wrong. answered 04 Feb, 22:20 0★drdang 1●1 accept rate: 0% 15.4k●1●20●65

the code i'm using is this : and i'm getting segmentation fault on submission but not while compiling .

include <iostream>

using namespace std;

int main() { // your code goes here int t; int a[100]; cin>>t; while(t--){ int n,k,count=0,i; cin>>n>>k;

    for(i=0;i<n;i++)
{
cin>>a[i];
}

for(i=0;i<n;i++)
{
if(a[i]>1)
count++;
}
if(k>count)
{
cout<<"YES"<<endl;
}
else{
cout<<"NO"<<endl;
}
}
return 0;


}

1
accept rate: 0%

 toggle preview community wiki:
Preview

By Email:

Markdown Basics

• *italic* or _italic_
• **bold** or __bold__
• image?![alt text](/path/img.jpg "title")
• numbered list: 1. Foo 2. Bar
• to add a line break simply add two spaces to where you would like the new line to be.
• basic HTML tags are also supported
• mathemetical formulas in Latex between \$ symbol

Question tags:

×1,167
×874
×649
×61
×12

question asked: 29 Oct '18, 01:27

question was seen: 1,109 times

last updated: 2 days ago