題目描述:
請設計一個文件緩存系統,該文件緩存系統可以指定緩存的最大值(單位為字節)。
文件緩存系統有兩種操作:存儲文件(put)和讀取文件(get)
操作命令為put fileName fileSize或者get fileName
存儲文件是把文件放入文件緩存系統中;讀取文件是從文件緩存系統中訪問已存在的文件,如果文件不存在,則不作任何操作。
當緩存空間不足以存放新的文件時,根據規則刪除文件,直到剩余空間滿足新的文件大小為止,再存放新文件。
具體的刪除規則為:
文件訪問過后,會更新文件的最近訪問時間和總的訪問次數,當緩存不夠時,按照第一優先順序為訪問次數從少到多,第二順序為時間從老到新的方式來刪除文件。輸入描述:
第一行為緩存最大值m(整數,取值范圍為0 < m <= 52428800);
第二行為文件操作序列個數n(0 <= n <= 300000
從第三行起為文件操作序列,每個序列單獨一行
文件操作定義為"op file_namefile_size"
file_name是文件名,file_size是文件大小輸出描述:
輸出當前文件緩存中的文件名列表,文件名用英文逗號分隔,按字典順序排序
如:
a,c如果文件緩存中沒有文件,則輸出NONE
補充說明:
1. 如果新文件的文件