পোস্টটি পড়া হয়েছে 4,290 বার
UVa 10931 Parity Solution in Bengali

অনলাইন জাজ সিরিজ – ৫ (UVa 10071)

Post updated on 26th July, 2016 at 02:12 pm

অনলাইন জাজ সিরিজ – ৩ পড়তে পার যদি আগে পড়ে না থাক। সেখানে আমরা আলোচনা করেছিলাম LightOJ 1000 – Greetings from LightOJ প্রবলেমটা নিয়ে। এরপর প্রবলেম সলভ করতে গেলে যে ধরণের verdict পাওয়া যায় সেগুলো নিয়ে আলোচনা করেছিলাম অনলাইন জাজ সিরিজ – ৪ এ। আজকে আমরা সলভ করব আরেকটি জনপ্রিয় জাজ সাইট UVa এর জনপ্রিয় একটি প্রবলেম। অনেকেরই অনলাইন জাজে হাতেখড়ি হয় এই প্রবলেমটা সলভ করার মাধ্যমে।

UVa 10071 – Back to High School Physics

প্রবলেমের setter হচ্ছেন শ্রদ্ধেয় শাহরিয়ার মঞ্জুর স্যার। ২০০৩ থেকে ২০১৬ সাল পর্যন্ত প্রোগ্রামিং কনটেস্টের সবচেয়ে মর্যাদাপূর্ণ আসর ACM ICPC World Finals এর Judge হিসেবে স্যার দায়িত্ব পালন করে আসছেন। বর্তমানে তিনি সাউথ ইস্ট বিশ্ববিদ্যালয়ের CSE ডিপার্টমেন্টের শিক্ষক হিসেবে কর্মরত আছেন।

বরাবরের মতই প্রথম কাজ হচ্ছে প্রবলেমের ডেস্ক্রিপশন খুব ভাল ভাবে পড়ে ফেলা। পড়ে যদি মনে হয় পারা যাবে তাহলে নিজে নিজে চেষ্টা কর। কিছুতেই কিছু না হলে এরপর পোস্টের বাকি অংশ পড়ে সলভ করে ফেল।

খুব সংক্ষিপ্ত একটি বর্ণনা “A particle has initial velocity and acceleration. If its velocity after certain time is v then what will its displacement be in twice of that time?” অর্থাৎ একটি বস্তুর আদি বেগ ও ত্বরণ দেয়া আছে। বলা হয়েছে যে একটা নির্দিষ্ট সময় পরে (ধরি সময় t) বস্তুটির বেগ হয় v তাহলে ঐ সময়ের (t) দ্বিগুণ সময়ে (দ্বিগুণ মানে কী? মানে 2t সময়ে আর কি) বস্তুটির কত সরণ (ধরি সরণ s) হবে? প্রোগ্রামে ইনপুট দেয়া হবে v ও t এর মান।

এই প্রবলেম সলভ করতে হবে পদার্থ বিজ্ঞানের নলেজ অনেক ভাল থাকা লাগবে (!) 😛

ফিজিক্সে ভাল না থাকলেও মোটামুটি ক্লাস নাইন-টেনের পদার্থ বিজ্ঞান বই যারা দুই চারদিন নাড়াচাড়া করেছ তারাও এই প্রবলেম সলভ করতে পারবে। একটা সূত্র ছিল, s = vt. মানে কোন বস্তু আদি বেগে চলা শুরু করল। এর সরণ (displacement) হবে এর বেগ ও অতিবাহিত সময়ের গুণফলের সমান। (দয়া করে জিজ্ঞেস কইরেন না “ক্যামনে?”, ছুডু বেলায় মুখস্ত করে করে আমি এখন I am GPA 5 :'( ) এখানে সূত্র থেকে আমরা পেলাম v বেগে t সময় ধরে চলার পর কোন বস্তু কতখানি দূরত্ব অতিক্রম করে সেটার পরিমাপ। কিন্তু প্রশ্নে চাওয়া হয়েছে v বেগে 2t (what will its displacement be in twice of that time?) সময় চলে বস্তুটির অতিক্রান্ত দূরত্ব কত? তাহলে সূত্রটা কী দাঁড়াবে?

খাতাকলমে হিসাব করে ফেল। ইয়া বড় হিসাব-নিকাশ করলেও সবশেষে প্রশ্নানুসারে পাওয়া যাবে s = v * 2 * t 😀 এবং হ্যাঁ… এটাই এই প্রবলেমের মূল equation!

Input & Output

Input হিসেবে প্রতি লাইনে দেয়া হবে v ও t. যেখানে v (−100 ≤ v ≤ 100) এবং t (0 ≤ t ≤ 200)। এর মানে যেন কী? প্রতিবার IF দিয়ে চেক করবা দুইটার মান এই রেঞ্জের মধ্যে আছে কিনা? মনে পড়েছে আগের পোস্টের কথা? যেখানে বলেছিলাম যে এই রেঞ্জ দিয়ে আসলে তোমাকে ensure করা হচ্ছে যে তোমার প্রোগ্রামে এই রেঞ্জের বাইরের কোন মান ইনপুট দিয়ে চেক করা হবে না।

আরেকটা জিনিস খেয়াল করেছ? ইনপুটে কিন্তু test case নেয়ার কথা বলা হয় নাই। কিন্তু স্যাম্পলে ঠিকই দুই সেট ইনপুট নেয়া হয়েছে এবং দুই সেট আউটপুট দেখানো হয়েছে! তাহলে ‘ক্যামনে কী???’ :/

এখানে প্রবলেম সেটার যেহেতু বলে দেন নি টেস্ট কেসের সংখ্যা তাই আমাদেরকে ব্যবহার করতে হবে EOF (End of File). Test Case ও EOF সম্পর্কে বিস্তারিত পড়তে পার এই পোস্টে গিয়ে

এখন কোডের স্যাম্পল দেখা যাক (যদিও তুমি নিজেই এটা পারবে!)

while(input: (v & t) until EOF found) 
{ 
  s = v * 2 * t; 
  output: ("%d\n", s); //প্রবলেম এ কেস নাম্বার প্রিন্ট করতে বলে নি, তাই শুধু রেজাল্টটা প্রিন্ট করেছি 
}

তো সলভ করে ফেল একটি দারুণ প্রবলেম!

হ্যাপি প্রবলেম সলভিং… 🙂

3 thoughts on “অনলাইন জাজ সিরিজ – ৫ (UVa 10071)

  1. আমি UVA te ১০০, ১০২, ১০৩ problem গুলো solve করেছি। ১০১ বুঝতেছি না যে কি করতে হবে। আপনার পোষ্টের প্রব্লেম গুলো বুজতেছি ও পারি যেগুলো ১০০০০ এর উপরে। আমি UVA te easy to hard sequence টা পাচ্ছি না।

Leave a Reply

Your email address will not be published. Required fields are marked *