Advertisement
Guest User

BIn Packing

a guest
Dec 13th, 2019
129
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.69 KB | None | 0 0
  1. #include<stdio.h>
  2. int binpacking(int w[], int sz, int cap){
  3.     int runningbin=0;//সবার প্রথমে একটা ও  বিন নেই
  4.  
  5.     int freespace[sz+1];//বিন এ কতোটুকু জায়গা খালি আছে তা রাখার জন্য
  6.  
  7.     freespace[runningbin]=cap;//একদম প্রথমে প্রথম বিনের  ফ্রি স্পেস ক্যাপাসিটির পুরোটাই।
  8.  
  9.     int j=0;
  10.     //প্রত্যেক টা ইলিমেন্টের জন্য চেক করা শুরু করলাম
  11.     for(int i=0;i<sz;i++){
  12.         //প্রত্যেক্ টা বিনের জন্য নিচের লুপ দিয়ে চেক করব।
  13.         for( j=0;j<runningbin;j++){
  14.             if(freespace[j]>=w[i]){
  15.                 freespace[j]-=w[i];
  16.                 break;//একটা ইলিমেন্ট নেয়া হয়ে গেছে এজন্য বের হয়ে গেলাম।
  17.             }
  18.         }
  19.         if(j==runningbin){//যদি আমাদের আগের বিনে জায়গা না থাকে কিংবা একদম প্রথমে  যখন কোনো বিন থাকে না।
  20.             freespace[runningbin]=cap-w[i];
  21.             runningbin++;//নতুন বিন ক্রিয়েট করলাম।
  22.         }
  23.  
  24.     }
  25.     return runningbin;
  26. }
  27. int main()
  28. {
  29.     int sz;
  30.     scanf("%d",&sz);
  31.     int w[10000];
  32.     for(int i=0;i<sz;i++)
  33.         scanf("%d",&w[i]);
  34.     int cap;
  35.     scanf("%d",&cap);
  36.     int totalbin=binpacking(w, sz, cap);
  37.     printf("%d\n",totalbin);
  38.  
  39. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement