BIGSALE - Editorial

PROBLEM LINK:

Div1, Div2
Practice

Author: Praveen Dhinwa
Tester: Triveni Mahatha
Editorialist: Adarsh Kumar

DIFFICULTY:

Easy

PREREQUISITES:

None

PROBLEM:

You are given the initial price $p$ of a product. You need to first increase the price of this recipe by $x\%$ (from $p$) and then offer a discount of $x\%$. You need to compute the loss which occured to you as a result of this process, for $N$ items.

EXPLANATION:

Original price of the product = $p$.

Chef decides to increase the price of recipe by $x\%$ which means new price = $p.\left(1+\frac{x}{100}\right)$.

Now he is going to offer a discount of $x\%$ on this price. Hence,
Final price = $p.\left(1+\frac{x}{100}\right).\left(1-\frac{x}{100}\right)$
$\Rightarrow$ Final price = $p.\left(1-\left(\frac{x}{100}\right) ^2\right)$

Since, the final price is less than original price:
Loss = Original price - final price
$\Rightarrow$ Loss = $p - p.\left(1-\left(\frac{x}{100}\right) ^2\right)$
$\Rightarrow$ Loss = $p.\left(\frac{x}{100}\right) ^2$

Coming back to original problem, we can use the formula for loss computed above to find loss for each recipe individually. Hence,
Answer = $\sum \limits_{i=1}^N ext{quantity$_i$}. ext{price$_i$}.\left(\frac{ ext{discount$_i$}}{100}\right) ^2$

Time Complexity:

$O(N)$

AUTHOR'S AND TESTER'S SOLUTIONS

Setter's solution
Tester's solution

What is wrong? Please help!

https://www.codechef.com/viewsolution/17656727

#include<stdio.h>

int main()

{

int t;

scanf("%d",&t);

while(t–)

{

long n;

double l=0.0;

scanf("%ld",&n);

while(n–)

{

int q;

double np,ad,p,d;

scanf("%lf %d %lf",&p,&q,&d);

np=p+(pd0.01);

ad=np-(npd0.01);

l=l+(p-ad)*q;

}

printf("%lf
",l);

}

return 0;

}

plese help https://www.codechef.com/viewsolution/23056161