Banner Home Page DIY Contests Problems Ranklist Status Statistics

Memory Control

Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 32768/32768K (Java/Other)
Total Submission(s) : 0   Accepted Submission(s) : 0

Font: Times New Roman | Verdana | Georgia

Font Size: ¡û ¡ú

Problem 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:
1.  Reset Reset all memory units free.
2.  New x Allocate a memory block consisted of x continuous free memory units with the least start number
3.  Free x Release the memory block which includes unit x
4.  Get x Return the start number of the xth memory block(Note that we count the memory blocks allocated from left to right)
Where 1<=x<=N.You are request to find out the output for M operations.

Input

Input contains multiple cases.
Each test case starts with two integer N,M(1<=N,M<=50000) ,indicating that there are N units of memory and M operations.
Follow by M lines,each line contains one operation as describe above.

Output

For each ¡°Reset¡± operation, output ¡°Reset Now¡±.
For each ¡°New¡± operation, if it¡¯s possible to allocate a memory block,
output ¡°New at A¡±,where Ais the least start number,otherwise output ¡°Reject New¡±.
For each ¡°Free¡± operation, if it¡¯s possible to find a memory block occupy unit x,
output ¡°Free from A to B¡±,where A and B refer to the start and end number of the memory block,otherwise output ¡°Reject Free¡±.
For each ¡°Get¡± operation, if it¡¯s possible to find the xth memory blocks,
output ¡°Get at A¡±,where A is its start number,otherwise output ¡°Reject Get¡±.
Output one blank line after each test case.

Sample Input

6 10
New 2
New 5
New 2
New 2
Free 3
Get 1
Get 2
Get 3
Free 3
Reset

Sample Output

New at 1
Reject New
New at 3
New at 5 
Free from 3 to 4
Get at 1
Get at 5
Reject Get
Reject Free
Reset Now

Source

2009 Multi-University Training Contest 7 - Host by FZU

Statistic | Submit | Back