সমস্যাটি আসলেই খুব-ই সোজা । একবার ধরে ফেলতে পারলে মনে হবে এইরকম সমস্যাও ACM এ দেয় ? তাহলে চল দেখা যাক আসলেই কি জানতে চাওয়া হচ্ছে এই সমস্যায় ?
চল আমরা প্রথম Input/output এর দিকে নজর দেই । যখন n=12 এবং m = 3 তখন সমস্যাটি অনেকটা হয়ে যায় এই রকমঃ
-1 -2 -3 +4 +5 +6 -7 -8 -9 +10 +11 +12
যার উত্তর হলঃ ১৮ । n এর মান ছোট তখন আমরা সহজেই এর মান বের করে ফেলতে পারি । কিন্তু n এর মান বড় হলে ?
সময় এখন উপরের সমস্যাটিকে ভেঙ্গে দেখার ।
-1 +4 = 3 -7 + 10 =3
-2+ 5 = 3 -8 + 11 =3
-3 + 6 =3 -9 + 12 =3
দেখতেই পাচ্ছ যোগ-বিয়োগের ফলে n সংখ্যক terms হয়ে গেছে n/2 সংখ্যক terms যাদের প্রত্যেকের মান হল m সুতরাং যোগফল = m + m + m + .............................( n/2 সংখ্যক terms )
= m * ( 1 + 1+ 1 + ................. ( n/2 সংখ্যক terms ) )
= m* ( n/2 )
কাজেই সমাধান হলঃ result = m* ( n/2 ) .
শেষে শুধুই একটি warning : result variable এর type long long রাখতে ভুল না । শুভ কামনার সবটুকু তোমার জন্য রেখে আজকে না হয় এখানেই বিদায় নিলাম । ভাল থেক সবসময় ।
চল আমরা প্রথম Input/output এর দিকে নজর দেই । যখন n=12 এবং m = 3 তখন সমস্যাটি অনেকটা হয়ে যায় এই রকমঃ
-1 -2 -3 +4 +5 +6 -7 -8 -9 +10 +11 +12
যার উত্তর হলঃ ১৮ । n এর মান ছোট তখন আমরা সহজেই এর মান বের করে ফেলতে পারি । কিন্তু n এর মান বড় হলে ?
সময় এখন উপরের সমস্যাটিকে ভেঙ্গে দেখার ।
-1 +4 = 3 -7 + 10 =3
-2+ 5 = 3 -8 + 11 =3
-3 + 6 =3 -9 + 12 =3
দেখতেই পাচ্ছ যোগ-বিয়োগের ফলে n সংখ্যক terms হয়ে গেছে n/2 সংখ্যক terms যাদের প্রত্যেকের মান হল m সুতরাং যোগফল = m + m + m + .............................( n/2 সংখ্যক terms )
= m * ( 1 + 1+ 1 + ................. ( n/2 সংখ্যক terms ) )
= m* ( n/2 )
কাজেই সমাধান হলঃ result = m* ( n/2 ) .
শেষে শুধুই একটি warning : result variable এর type long long রাখতে ভুল না । শুভ কামনার সবটুকু তোমার জন্য রেখে আজকে না হয় এখানেই বিদায় নিলাম । ভাল থেক সবসময় ।
result variable type long long রাখব কেন?
উত্তরমুছুনকারণ n এর সর্বোচ্চ মান ১০০০০০০০০০ হতে পারে । যার উত্তর int এর limit কে অতিক্রম করবে ।
মুছুন