Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- int binpacking(int w[], int sz, int cap){
- int runningbin=0;//সবার প্রথমে একটা ও বিন নেই
- int freespace[sz+1];//বিন এ কতোটুকু জায়গা খালি আছে তা রাখার জন্য
- freespace[runningbin]=cap;//একদম প্রথমে প্রথম বিনের ফ্রি স্পেস ক্যাপাসিটির পুরোটাই।
- int j=0;
- //প্রত্যেক টা ইলিমেন্টের জন্য চেক করা শুরু করলাম
- for(int i=0;i<sz;i++){
- //প্রত্যেক্ টা বিনের জন্য নিচের লুপ দিয়ে চেক করব।
- for( j=0;j<runningbin;j++){
- if(freespace[j]>=w[i]){
- freespace[j]-=w[i];
- break;//একটা ইলিমেন্ট নেয়া হয়ে গেছে এজন্য বের হয়ে গেলাম।
- }
- }
- if(j==runningbin){//যদি আমাদের আগের বিনে জায়গা না থাকে কিংবা একদম প্রথমে যখন কোনো বিন থাকে না।
- freespace[runningbin]=cap-w[i];
- runningbin++;//নতুন বিন ক্রিয়েট করলাম।
- }
- }
- return runningbin;
- }
- int main()
- {
- int sz;
- scanf("%d",&sz);
- int w[10000];
- for(int i=0;i<sz;i++)
- scanf("%d",&w[i]);
- int cap;
- scanf("%d",&cap);
- int totalbin=binpacking(w, sz, cap);
- printf("%d\n",totalbin);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement