Sunday, July 9, 2017

1294 - Positive Negative Sign Lightoj Problem Solution & Logic

http://www.lightoj.com/volume_showproblem.php?problem=1294
-1 -2 -3 +4 +5 +6 -7 -8 -9 +10 +11 +12

 ধরো , ইনপুটে দেয়া আছে - n = 12 and m =3 - তাহলে, উপরের সিরিজ'টি হবে ।
ধারা'র নিয়মটি হলো - ১ থেকে ১২ অবদি সংখ্যা'র যোগফল -কিন্তু, m এর মানের উপর ডিপেন্ড করে 
কিছু সংখ্যা এর মান হবে নেগেটিভ । লুপ খাটিয়ে ইজিলি করা যাবে , কিন্তু - Time Limit Exceeded 
 হবার সম্ভাবনা থাকবে  । তাই , অন্যপথে - আমাদের হাটতে হবে

 এখন, একটূ ভালোভাবে লক্ষ করলে একটা বিষয় ক্লিয়ার হবে ,খেয়াল করি - ধারাটি , একটু সুবিধামত লিখে ফেলি ------------------

-1 + 4    -2+5    -3+6    -7+10    -8+11    -9+12 

m এর মান ৩ হবার কারণে - ৩টি সংখ্যা পরপর ৩ টি সংখ্যা নেগেটিভ ,হয়েছে - এটাকে উপরের নতুন
গোছানো ধারা অনুযায়ী লক্ষ করলে , দেখতে পাচ্ছি মোট  n/2 = 6 ( এখানে যেহেতু,  n=12 ) টি অংশ পেয়েছি , যে অংশের প্রত্যেকটির মান m এর মানের সমান ( এখানে ,  m==3) । যেহেতু ,  n/2  সংখ্যক পার্ট যাদের মান  m,   এখন বুঝতেই পারছো  , ধারাটির যোগফল হবে   m*(n/2)  == 18  | | 

চলো , কোড দেখি 

#include<iostream>
#include<cstdio>
#include<cmath>


using namespace std;

    int main()
    {
        int T;
        cin>>T;
        long long int n,m;

        for(int i=1;i<=T;i++)

        {
            cin>>n>>m;
            printf("Case %d: %lld\n",i,(n*m)/2);
        }

        return 0;
    }
 


1 comment: