兼职做网站访问量和数据,贵阳专业做网站,如何搭建企业官网,wordpress字体目录下【问题描述】 有人建造了一些机器人#xff0c;并且将他们放置在包含n个单元的一维网格上#xff0c;一个长度为n的字符串s代表了他们的编排方式#xff0c;字符串中的字符既可以是.#xff0c;也可以是0~9之间的一个数字字符#xff0c;字符.表示开始时在相应的单元上无机…【问题描述】 有人建造了一些机器人并且将他们放置在包含n个单元的一维网格上一个长度为n的字符串s代表了他们的编排方式字符串中的字符既可以是.也可以是0~9之间的一个数字字符字符.表示开始时在相应的单元上无机器人数字表示开始时在相应的单元上有一个机器人。特别地数字x表示他可以从开始点向左移动x个单元或从开始点向右移动x个单元每次移动距离为一个单元格。 例如假定字符串的第7个字符为3代表机器人从第7个单元开始他的活动范围为第4个单元7-34到第10个单元7310(包含两个端点机器人仅仅可以在这个范围内移动但不可以移出网格。一旦达到范围边界机器人会折返。 在此范围内开始时机器人可以在任意时间按照任意方向移动但如果两个机器人可能同时到达同一单元格时 就会发生碰撞。 请判断机器人的编排方式是否安全。
【输入形式】
第一行为一个整数T代表测试数据的组数接下来T行每行为一个测试字符串s。 【输出形式】
对于每个测试用例输出一行为safe或unsafe(无引号。 【样例输入】
4
....
.2.....
.2...2..
1.1.1.
【样例输出】
safe
safe
unsafe
unsafe
【样例说明】 【评分标准】
#includeiostream
#includecstring
#includecmath
using namespace std;
int main()
{int t,l,m[10000];string s;cint;for(int i0;it;i){memset(m,0,sizeof(m));cins;ls.length();for(int j0;jl;j){if(s[j]9s[j]0){for(int kmax(0,j-s[j]0);kmin(js[j]-0,l);k){m[k];}}}int flag0;for(int j0;jl;j){if(m[j]1) {flag1;coutunsafeendl;break;}}if(flag0) coutsafeendl;}
}