DCP-505: Covert Operation Dev skill



Algorithme in this problem:

এখানে তোমাকে যেই টাইপের ত্রিভূজের কথা বলেছে সেটার ভূমি আর উচ্চতা সমান। আর তোমাকে ইনপুট দিবে সেই ত্রিভূজের তিন বাহুর সমষ্টি। 

তাহলে প্রথমে আমরা ধরে নেই ভুমি = x. তাহলে উচ্চতা ও হবে x. যেহেতু ভূমি আর উচ্চতা সমান।


এখন আমরা পীথাগোরাসের সূত্র দিয়ে অতিভূজটা বের করে নিতে পারি?

(ভূমি)^2 + (উচ্চতা)^2 = (অতিভূজ)^2
x^2 + x^2 = (অতিভূজ)^2
অতিভূজ = √2x

এখন আমাদের ইনপুট দেয়া হবে ত্রিভূজের তিন বাহুর সমষ্টি। ধরে নিলাম সেটা p.

x + x + √2x = p.
2x + √2x = p.
√2x (√2 + 1) = p. (√2x কমন নিয়ে).
x = p / (√2 (√2 + 1)).

তাহলে এখন আমরা আমাদের ভুমি ও উচ্চতা দুইটার মানই জানি? কারন দুইটাই সমান ছিল। দুইটাই x ছিল। আর x এর মান p থেকে আমরা বের করে নিতে পারছি ( x = p / (√2 (√2 + 1)) ).

এর পরে এরিয়া বের করা তো সহজ ।

এরিয়া = (1/2) * ভূমি * উচ্চতা । ( এখানে ভুমি এর উচ্চতা দুইটাই x )
এরিয়া = (1/2) * x * x.

এর আই ভ্যালুটাকে দুই দশমিক স্থান পর্যন্ত প্রিন্ট করতে বলেছে।




A solution in c++

#include<bits/stdc++.h>
using namespace std;
/// Typedef
typedef long long int ll;


//Int data type
#define sc1(a)              scanf("%d", &a)
#define sc2(a, b)           scanf("%d %d", &a, &b)
#define sc3(a, b, c)        scanf("%d %d %d", &a, &b, &c)
#define sc4(a, b, c, d)     scanf("%d %d %d %d", &a, &b, &c, &d)

//Long Data type
#define scl1(a)             scanf("%lld", &a)
#define scl2(a, b)          scanf("%lld %lld", &a, &b)
#define scl3(a, b, c)       scanf("%lld %lld %lld", &a, &b, &c)
#define scl4(a, b, c, d)    scanf("%lld %lld %lld %lld", &a, &b, &c, &d)


int main(){

   ll a,t,b,c,d,j,n,i=1,m;
   double aa,ck,x;
   scanf("%lld",&n);
   while(n--){
       scl1(a);
       x = a/(sqrt(2)*(sqrt(2)+1));
       ck = 0.5*x*x;
       printf("%.2lf\n", ck);
   }
}

Post a Comment

0 Comments