LightOJ – 1216 – Juice in the Glass

Problem link

Juice in the Glass
Juice in the Glass (Image 1)

আলোচনাঃ
প্রশ্ন অনুসারে আমাকে juice এর volumn বের করা লাগবে। juice যদি glass এর পুরো অংশ জুড়ে থাকতো তাহলে সূত্র হচ্ছে,
volume,V= (pi/3)*h*(r1*r1 + r2*r2 + r1*r2); here r1 is for height,h. ——(1)

তবে আমাদের পুরো glass জুড়ে juice নাই। juice আছে height ,p পর্যন্ত।

কিন্তু আমাদের height, p এর জন্য r1 জানা নাই। তাহলে আমরা যদি height=p এর জন্য r1 বের করতে পারি তবেই আমরা juice এর volume বের করতে পারবো।

উত্তরঃ
চিত্র থেকে দেখতে পাচ্ছি, লাল line থেকে কমলা line পর্যন্ত দৈর্ঘ্য সর্বদা r2. তাহলে প্রতি একক দৈর্ঘ্যে নীল অংশের দৈর্ঘ্য কতটুকু বাড়ছে সেটাই হবে তাহলে extra কতটুকু বাড়ছে।তাহলে নতুন r1 হবে (extra+r2) . extra অংশটুকু নিচের মতো করে calculate করতে পারি –

height যখন h তখন বাড়বে ——> (r1-r2)
height যখন 1 তখন বাড়বে ——-> (r1-r2)/h
height যখন p তখন বাড়বে ——> ((r1-r2)*p)/h = extra

তাহলে , newR1 = r2 + extra , এটা লিখতে পারি। আর এটাই আমাদের নতুন r1.

From (1) ,
volume , V= (pi/3)* p *(newR1* newR1 + r2*r2 + newR1 *r2)

C++ Code:

#include<bits/stdc++.h>
using namespace std;
#define PI acos(-1.0)
 
int main(){
    double t,r1,r2,h,p;
    double newR1,extra,volume;
    cin>>t;
    for(int i=1;i<=t;i++){
 
        cin>>r1>>r2>>h>>p;
        
        extra=((r1-r2)*p)/h;
        newR1=r2+extra;
        volume =(PI/3)*p*(newR1*newR1+r2*r2+newR1*r2);//here, height = p
        printf("Case %d: %.10lf\n",i,volume); // O(1)
    }
}

This Post Has 2 Comments

    1. tusher

      Well. Thanks

Leave a Reply