ধরো মনে করো , আছে ------- "15-25-8"
১) প্রথমে ,ইনিশিয়াল অবস্থা থেকে তোমায় ঘড়ির কাটার দিকে , ২ বার ফুল ঘুরিয়ে যেখানে আছে - সেখানে আনতে হবে ।।
২) তারপর সেইখান থেকে , ঘুরিয়ে --- 15 অবদি নিতে হবে ।।
৩)15 অবদি নিয়ে এসেই , সেই যায়গা থেকে ফুল ১ বার ঘড়ির কাটার বিপরীত দিকে ঘুরিয়ে আবার 15 তে এনে থামতে হবে ।।
৪)এখন দ্বিতীয় সংখ্যা 25 অবদি আনার জন্য , ঘড়ির কাটার বিপরীত দিকে ঘুরিয়ে সেই 25 অবদি যাবো .।
৫) এখন এই 25 থেকে ঘড়ির কাটার দিকে ঘুরিয়ে তিন নাম্বার সংখ্যা 8 অবদি এনে , পুল করলেই লক'টি খুলে যাবে ।।
এখন আসো , বিশ্লেষণ করি - এখানে 0 থেকে 39 অবদি , মোট ঘর আছে কয়টা ?? অবশ্যই মোট 40 টা ।এখন , এই ফুল 40 টা ঘর ঘুরে আসলে একটা বৃত্ত হয়ে যায় তাই না ??? মানে 360 ডিগ্রী কোণ উতপন্ন হয় .।।
তাহলে তালাটি খোলার , ১ এবং ৩ নং পয়েন্ট অনুযায়ী কি হয় ??? ১ নাম্বার পয়েন্টে বলেছি , ২ বার ফুল ঘুরাতে হবে ও ৩ নম্বরে বলেছি যে - ১ বার ফুল ঘুরাতে হবে ,মোট ৩ বার - তাই না ???
তাহলে , সব তালা খোলার ক্ষেত্রেই এই ৩ বার ফুল ঘুরাতে হবে , তাই না ??? সুতরাং -- এই তিন বারের জন্য আমাদের যত ডিগ্রী কোণ উতপন্ন হবে , সেটা হলো - 360 X 3 = 1080 ডিগ্রী ।।
এখন আসি , আরো গভীরে -- একটু ঐকিক নিয়মে ফিরে যাই - চলো ,
40 টা ঘর ঘুরলে হয় 360 ডিগ্রী
1 টা ঘর ঘুরলে হয় 360/40 ডিগ্রী
=9 ডিগ্রী
এর মানে , কি দাড়ালো ??? প্রত্যেক ঘর ঘুরবার জন্য উতপন্ন হয় -- 9 ডিগ্রী ।।
এখন কিছু বিষয় আরো খেয়াল রাখতে হবে ---
১) ইনিশিয়াল পয়েন্ট initial থেকে যখন আমরা , (c1) প্রথম পজিশনে ঘুরাতে যাবো - তখন আগে , দেখতে হবে - বড় কে ??? যদি initial > c1 তাহলে , ঘুরাতে হবে মোট =( initial - c1) টা ঘর । আর উলটো হলে হইতো , ( initial - c1)+ 40 টা ঘর ।।
২) যখন c1 থেকে যখন আমরা , (c2) প্রথম পজিশনে ঘুরাতে যাবো - তখন আগে , দেখতে হবে - বড় কে ??? যদি c2 > c1 তাহলে , ঘুরাতে হবে মোট =( c2- c1) টা ঘর । আর উলটো হলে হইতো , ( c2 - c1)+ 40 টা ঘর ।।
৩) যখন c2 থেকে যখন আমরা , (c3) প্রথম পজিশনে ঘুরাতে যাবো - তখন আগে , দেখতে হবে - বড় কে ??? যদি c2 > c3 তাহলে , ঘুরাতে হবে মোট =( c2- c3) টা ঘর । আর উলটো হলে হইতো , ( c2 - c3)+ 40 টা ঘর ।।
এখন প্রতিটা ঘর ঘুরালে , উতপন্ন হয় -- 9 ডিগ্রী ।সুতরাং , যত ঘর ঘুরবে তার সাথে - 9 দিয়ে গুণ করে সবশেষে ১০৮০ এর সাথে যোগ করলে , মোট কোণ পাবো ।।
চলো , কোড দেখি এবার ----------------
#include<bits/stdc++.h>
using namespace std;
int main()
{
int initi, c1, c2, c3, ans;
while (scanf("%d %d %d %d", &initi, &c1, &c2, &c3)==4)
{
if(initi==0 && c1==0 && c2==0 && c3==0)
{
break;
}
ans = 0;
ans += (initi - c1) > 0 ? (initi - c1) * 9 : (initi - c1 + 40) * 9;
ans += (c2 - c1) > 0 ? (c2 - c1) * 9 : (c2 - c1 + 40) * 9;
ans += (c2 - c3) > 0 ? (c2 - c3) * 9 : (c2 - c3 + 40) * 9;
ans=ans+1080;
printf("%d\n", ans);
}
return 0;
}
This comment has been removed by the author.
ReplyDeleteProblem er solution er seye logic ta mostly important...R setao banglay....Thanks vai
ReplyDeleteWelcome Bro
DeleteThanks vai....
ReplyDeletethank you very much vai.
ReplyDeletehelped a lot.