Answer:
Answer explained below
Step-by-step explanation:
Below is the code for Greedy change algorithm in C++. Please let me know what does c ,k and represent in the question. so that i can update according to requirement 
#include <bits/stdc++.h> 
using namespace std; 
 
 
int deno[] = { 1, 3,9,27,81 }; 
int n = sizeof(deno) / sizeof(deno[0]); 
 
void findMin(int V) 
{ 
 // Initialize result 
 vector<int> ans; 
 
 // Traverse through all denomination 
 for (int i = n - 1; i >= 0; i--) { 
 // Find denominations 
 while (V >= deno[i]) { 
 V -= deno[i]; 
 ans.push_back(deno[i]); 
 } 
 } 
 
 // Print result 
 for (int i = 0; i < ans.size(); i++) 
 cout << ans[i] << " "; 
} 
 
 
int main() 
{ 
 int n = 38; 
 cout << "Following is minimal number of change for " << n << ": "; 
 findMin(n); 
 return 0; 
}