栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

poj 2705 Overflowing Bookshelf

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

poj 2705 Overflowing Bookshelf

#include<iostream>#include<stdio.h>#include<list>using namespace std;class Bookshelf; class Book{public:    Book(int _id,int _width):id(_id),width(_width){}    int id,width;    friend class Bookshelf;};class Bookshelf{public:    Bookshelf(int w):width(w){        occupied_width=0;    }    void add(const Book &book){        shelf.push_front(book);        occupied_width += book.width;        while(occupied_width>width){ occupied_width -= (shelf.back()).width; shelf.pop_back();        }     }    void remove(const int &id){        list<Book>::iterator i;        for(i=shelf.begin();i!=shelf.end();i++){ if(i->id == id) break;        }        if(i==shelf.end()) return;        occupied_width -= i->width;        shelf.erase(i);    }    friend ostream& operator<<(ostream &out,Bookshelf &bookshelf);private:    list<Book> shelf;    int width;    int occupied_width;};ostream& operator<<(ostream &out, Bookshelf &bookshelf){    list<Book>::iterator i;    for(i=(bookshelf.shelf).begin();i!=(bookshelf.shelf).end();i++)        out<<" "<<i->id;    return out;}int main(){    int width;    int p=1;    char cmd;    while(cin>>width,width!=-1)    {        Bookshelf bookshelf(width);        int id,w;        while(cin>>cmd)        { if(cmd=='E') break; else if(cmd=='R') {     cin>>id;     bookshelf.remove(id); }else {     cin>>id>>w;     bookshelf.add(Book(id,w)); }        }        cout<<"PROBLEM "<<p++<<":"<<bookshelf<<endl;    }    return 0;}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/372207.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号