মঙ্গলবার, ৩০ অক্টোবর, ২০১৮

Coin Change problem no 1232 light oj

কিছু কয়েন দেওয়া থাকবে আর একটা নাম্বার দেওয়া থাকবে (K)
কাজ হবে ওই কয়েন গুলো দিয়ে নাম্বার টা বানানো যেখানে একটা কয়েন K বার ইউজ করা যাবে
এইরকম ভাবে কয়বার বানানো যাবে
For example, suppose there are three coins 1, 2, 5. Then if K = 5 the possible ways are:
11111
1112
122
5
তাহলে ৪ ভাবে বানাতে পারবো 
Problem link: http://lightoj.com/volume_showproblem.php?problem=1232

#include <bits/stdc++.h>
using namespace std;
#define MOD 100000007
long long dp[10100];
int coin[200];
int n,k;
int main()
{
    int t,cas=0;
    cin>>t;
    while(t--)
    {
        dp[0]=1;
        cin>>n>>k;
        for(int i=0; i<n; i++)
            cin>>coin[i];
        for(int i=0; i<n; i++)
            for(int j=1; j<=k; j++)
                if(coin[i]<=j)
                    dp[j]=(dp[j]+dp[j-coin[i]])%MOD;
        cout<<"Case "<<++cas<<": "<<dp[k]<<endl;
        for(int i=0; i<=k; i++)
            dp[i]=0;
    }
    return 0;
}

কোন মন্তব্য নেই:

একটি মন্তব্য পোস্ট করুন

Factorization with prime Sieve

vector <int> prime; char sieve[1000009]; int N=1000009; void primeSieve ( ) { sieve[0] = sieve[1] = 1; prime.push_back(2); ...