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 \text{quantity$_i$}.\text{price$_i$}.\left(\frac{\text{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\n",l);

}

return 0;

}

plese help CodeChef: Practical coding for everyone