题目描述
亚托莉,-我挚爱的时光-
亚托莉自身机器可能有出了一点小故障,希望你能帮助她解决这个问题~
亚托莉内部的操作系统的是 Linux 操作系统,不同于 Windows 操作系统。在大多数情况下, Linux 操作系统一般是通过一些包管理器来安装软件的,以下是一些 linux 命令(请注意,这些命只是在本题目中有效,其他的有可能不一样哦~)。
1. 安装`xxx`这款软件:sudo pacman -S xxx;
2. 卸载`xxx`这款软件,但是不清除这个软件的个人数据:pacman -R xxx;
3. 卸载`xxx`这款软件,并且一并清除这款软件的个人数据:pacman -Rscn xxx;
4. 删库跑路:sudo rm -rf /* (-请不要在自己的linux电脑上尝试这条命令哦~)
同时,你需要回答亚托莉问你的几个问题,(后面是提问的形式)
1. 亚托莉安装了xxx这款软件了么?:1 xxx
2. 亚托莉有这款xxx软件的个人数据么?:2 xxx
如果是的话,请回答yes,如果没有,请回答no,
注意事项:
1. 当软件安装之后,就会有个人数据产生。
2. 请注意,亚托莉不喜欢删库跑路,如果是含有删库跑路的命名,亚托莉就不跟你玩了,请输出wuwuwu,并且不再回答后面的问题,强制退出。
输入描述:
第一行有一个数字 n,表示有一共有 n 个指令或者问题,(问题和指令加起来有 n 个)。
第 2 行到 n+1 行,每一行是一个问题或者是一个命令。
其中
保证输入没有错误,删除软件之前一定会有安装。
软件不会被安装多次,而且软件名称不会含有空格。
输出描述:
1. 如果是命令,请执行。
2. 如果是问题,请根据问题回答,如果是正确的,请回答 yes,如果是错误的,请回答 no,
3. 如果含有命令为 sudo rm -rf /*,请输出 wuwuwu ,并且不在回答后面的问题,强制退出。(输出不含双引号)
示例1
输入
4
sudo pacman -S genshinimpact
1 genshinimpact
pacman -R genshinimpact
1 genshinimpact
输出
yes
no
说明
第一行安装了某软件,然后询问了某软件,回答yes,表示安装上了,之后卸载了某软件,问是否还有这款软件,回答no,表示没有这款软件。
示例2
输入
6
sudo pacman -S genshinimpact
pacman -R genshinimpact
2 genshinimpact
sudo pacman -S genshinimpact
pacman -Rscn genshinimpact
2 genshinimpact
输出
yes
no
说明
前两个指令先安装了某软件,并且卸载了某软件,但是个人数据却没有删除掉,问是否有这款软件的数据,回答yes,之后又安装上了这款软件,又将软件和个人数据一并卸载掉,所以问是否有这款软件的个人数据,回答no。
示例3
输入
5
1 genshinimpact
sudo pacman -S genshinimpact
sudo rm -rf /*
2 genshinimpact
1 genshinimpact
输出
no
wuwuwu
说明
第三条命令导致输出wuwuwu,所以之后的命令不用回答,直接退出。
思路:
这个题就是非常的简单了,就是模拟就行了,根据他的要求,设置两个标记数组,一个记录软件的,一个记录数据的,在查询时间直接看对应的数据还存不存在就行
AC代码
#include<bits/stdc++.h>
using namespace std;
map<string,int>rj,sj;
int main()
{
bool flag = 0;
int t;
cin >> t;
while(t--){
if(flag){
string s;
getline(cin,s);
continue;
}
string s;
cin >> s;
if(s == "sudo"){
string s1;
cin >> s1;
// cout << s1 << endl;
if(s1 == "rm"){
// cout << "pansuan";
cout << "wuwuwu";
flag = 1;
continue;
}else{
string s2,s3;
cin >> s2 >> s3;
rj[s3] = 1;
sj[s3] = 1;
}
}
if(s == "1"){
string rjm;
cin >> rjm;
if(rj[rjm] == 1){
cout << "yes\n";
}
else{
cout << "no\n";
}
continue;
}
if(s == "2"){
string sjm;
cin >> sjm;
if(sj[sjm] == 1){
cout << "yes\n";
}
else{
cout << "no\n";
}
continue;
}
if(s == "pacman"){
string s1,s2;
cin >> s1 >> s2;
if(s1 == "-R"){
rj[s2] = 0;
}
else{
rj[s2] = 0;
sj[s2] = 0;
}
}
}
}