Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include <cstdio>#include <cstring>struct block{int key;int len;int w;block *prev,*next;block(int k,int l){key=k;len=l;prev=next=NULL;}};typedef block* node;node pos[2002];block *top,*tail;int n,m;void init(){top=new block(-1,0);block *p=new block(0,m);p->prev=top;top->next=p;tail=new block(-1,0);p->next=tail;tail->prev=p;}block* findempty(int len){tail=top->next;while(tail->key!=-1){if(!tail->key&&tail->len>=len)return tail;