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.
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.
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.
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