Wednesday, August 16, 2017

1079. Maximum Timus Problem Solution & LOgic

http://acm.timus.ru/problem.aspx?num=1079

প্রোবলেম'টি কোনো ব্যপার না , যদি - ঠিকঠাক ইমপ্লিমেন্ট করতে পারো । তাই , প্রোবলেম'টি ভালো করে বুঝতে হবে , যে - কি বলেছে ?? এখানে আসলে , তোমায় কিছু বেইস কেইস দেয়া থাকবে - তারপর ,

A2i=Ai ;

A2i+1 = Ai + Ai+1;

একটা ধারা দেয়া থাকবে , সেই অনুযায়ী - তোমায় ইমপ্লিমেন্ট করতে হবে । এই যায়গায় , আসলে বলে বোঝানো যাবে না যে - কিভাবে তুমি ইমপ্লিমেন্ট করবে ? তাই , কোড দেখে একটু কষ্ট করে বুঝে নিতে হবে ----- 

আর হ্যা , তারপর - তোমাকে একটা সংখ্যা n  এর মান দেয়া থাকবে , তোমাকে একদম শূন্য থেকে লুপ ঘুরিয়ে সেই সংখ্যা অবদি গিয়ে বলতে হবে যে - সবচেয়ে ম্যাক্সিমাম মান কোনটা ??

চলো , এবার দেখে নেই কোড ----

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

using namespace std;

//Nayeem Mollick Joy ,Applied Physics & Electronic Engineering ,University of Rajshahi.


  int main ()
{
    int dp[100010];
    dp[0] = 0;
    dp[1] = 1;

    for ( int i = 1; i <= 100000 / 2; i++ ) {
        dp[2 * i] = dp[i];
        dp[2 * i + 1] = dp[i] + dp[i + 1];
    }

    int n;

    while ( scanf("%d", &n) ) {
            if(n==0)
            {
                break;
            }
        int mx = 0;
        for ( int i = 0; i <= n; i++ ) mx = max ( mx, dp[i]);
        printf("%d\n", mx);
     }

    return 0;
}

No comments:

Post a Comment