#Z1100. 现代化的世界树

现代化的世界树

本题为原创.idea:zhaohanwen design:zhaohanwen data:zhaohanwen std:zhaohanwen test:chjshen(teacher),zhanghongbin,liwenbo

注意:已经在2023/7/10加强数据和修改子任务.请注意题目末尾的数据范围表格.

(作者原神玩魔怔了)

题目背景

旅行者,能不能再帮我解决一个问题啊?(纳西妲看向你)

什么问题?

关于世界树的大问题,也许只有你才能解决了。

随着『世界树』上知识越来越多,管理变得非常不方便,这对纳西妲以及想要获取知识的人非常不利.所以她找到了你,让你来用程序解决这个问题.

题目描述

你要构建一个程序,模拟『世界树』服务器上的操作.

命令

delete

delete 文件名

删除一个文件.需要纳西妲(admin)才能执行.如果要删除的文件不存在,请输出file not found


download

download 文件名

下载一个文件.需要纳西妲或用户(admin & user)才能执行.下载时,需要消耗用户的下载次数.如果文件不存在,请输出file not found。如果下载次数不足,请输出you can't download你应当先检查下载次数再检查文件是否存在.


upload

upload 文件名 文件大小

上传一个文件.需要纳西妲才能执行(admin).上传的文件有大小.如果服务器空间不够,请输出disk is full

如果出现重复的文件名,输出already has file你应该在检查空间之前检查重复文件名


view

view 文件名

在线预览一个文件.任何人均可以这么干(admin & user & guest).如果文件不存在,请输出file not found


disk

可用空间/总空间的方式返回服务器存储状态(不加单位). 需要纳西妲(admin)才可以执行.


dir

返回服务器上所有文件,按照时间由远及近顺序,格式如下:

文件名 创建者 大小

例子:

tree.txt admin 14

保证dir命令执行次数小于20次

admin才可以执行


用户

admin

一切权限,无限次下载次数.


user

部分权限


guest

少量权限


在执行命令前,请先检查权限,来防止『其他知识』对『世界树』的影响.如果权限不足,请输出permission denied。如果用户不存在,输出no such user.

服务器

服务器上所有文件都在一个目录下.

服务器存储空间以MB为单位.

格式

输入

第一行 nn,表示用户个数. ss,表示服务器存储空间.qq,表示命令个数.

之后n行 以以下的格式给出用户信息:

用户名 下载次数

用户名为a-z的小写字母.

之后q行 命令,以执行此命令的用户为开头

输出

命令结果,如果命令成功且没有输出结果,输出success.

样例

2 100 5
a 4
b 1
admin upload a.txt 20
admin upload r.txt 300
c download a.txt
a download a.txt
guest download a.txt
success
disk is full
no such user
success
permission denied

数据范围

本题不采用捆绑测试,开子任务只是为了方便.

本题空间限制512MB,时间限制2s.

本题输入输出量较大,虽然时间限制已开大,但是请注意影响.

0n1030 \leq n \leq 10^3;0q1040 \leq q \leq 10^4;102s,文件大小101210^2 \leq s,文件大小 \leq 10^{12};0下载次数1020 \leq 下载次数 \leq 10^2;

0用户名/文件名长度200\leq 用户名/文件名长度 \leq 20

0文件总数2×1060\leq 文件总数 \leq 2×10^6

子任务编号 特殊性质 总分数
子任务1(测试点14)子任务1(测试点1-4) 40(10/测试点)40(10/测试点)
子任务2(测试点58)子任务2(测试点5-8) 60(15/测试点)60(15/测试点)

特殊性质:无对文件除了upload以外的有效的操作.

番外

(在你解决问题之后)

旅行者,再次感谢你帮我解决了问题...

没什么。

image