349B. Color the Fence - Codeforces Solution C++

  Problem Link : 349B. Color the Fence 


✅ C++ Solution :

 
#include<bits/stdc++.h>
using namespace std;
 
int main()
{
  int sum,mini=INT_MAX;
  cin>>sum;
  int arr[10];
  for(int i=1;i<=9;i++)
  {
    cin>>arr[i];
    mini=min(mini,arr[i]);
  }
 
  if(sum<mini)
  {
    cout<<"-1";
    exit(0);
  }
 
  int l=sum/mini;
  string s="";
  int tmp;
  int tmpsum=sum;
  for(int i=1;i<=l;i++)
  {
    for(int j=9;j>0;j--)
    {
      tmp=tmpsum-arr[j];
      if(l==i)
      {
        if(tmp>=0)
        {
          s+=j+48;
          break;
        }
 
      }
      else if(tmp/(l-i) >= mini)
      {
        tmpsum-=arr[j];
        s+=j+48;
        break;
      }
 
    }
  }
  cout<<s;
 
}

 

Thank you for your patience reading. If you enjoyed this post, I’d be very grateful if you’d help it spread by emailing it to a friend, or sharing it on Whatsapp or Facebook. 

😇Happy Learning!!