Brief description:
Memory units are numbered from 1 up to N. A sequence of memory units is called a memory block.
The memory control system we consider now has four kinds of operations:
Reset
: Reset all memory units free. For eachReset
operation, outputReset Now
.New x
: Allocate a memory block consisted of x continuous free memory units with the least start number. For eachNew
operation, if it’s possible to allocate a memory block, outputNew at A
, where A is the least start number, otherwise outputReject New
.Free x
: Release the memory block which includes unit x. For eachFree
operation, if it’s possible to find a memory block occupy unit x, outputFree from A to B
, where A and B refer to the start and end number of the memory block, otherwise outputReject Free
.Get x
: Return the start number of the xth memory block(Note that we count the memory blocks allocated from left to right). For eachGet
operation, if it’s possible to find the xth memory blocks, outputGet at A
, where A is its start number, otherwise outputReject Get
.
Where 1<=x<=N. You are request to find out the output for M operations. Output one blank line after each test case.
Analysis:
… 略)
http://acm.hust.edu.cn/vjudge/contest/viewSource.action?id=1236087
External link:
…