fork download
  1. #include <iostream>
  2. #include<vector>
  3. #include<cstring>
  4.  
  5. using namespace std;
  6.  
  7. int main() {
  8. int t;
  9. cin>>t;
  10. while(t--)
  11. {
  12. string s;
  13. cin>>s;
  14. int n=s.length();
  15. int count=0;
  16. for(int i=0;i<n;i++)
  17. if(s[i]!='.')
  18. count++;
  19. if(count==0 || count==1)
  20. printf("safe\n");
  21. else
  22. {
  23. vector<int>t1;
  24. vector<int>t2;
  25. for(int i=0;i<n;i++)
  26. {
  27. if(s[i]!='.')
  28. {
  29. int f=i-(s[i]-'0');
  30. int l=i+(s[i]-'0');
  31. if(f<0)
  32. f=0;
  33. if(l>=n)
  34. l=n-1;
  35. t1.push_back(f);
  36. t2.push_back(l);
  37. }
  38. }
  39. int n1=t1.size();
  40. int flag1=0;
  41. for(int i=0;i<n1-1;i++)
  42. {
  43. int flag=0;
  44. for(int j=1;j<n1;j++)
  45. {
  46. if(i!=j && t2[j]<=t1[i])
  47. {
  48. cout<<"unsafe"<<endl;
  49. flag=1;
  50. flag1=1;
  51. break;
  52. }
  53. if(flag==1)
  54. break;
  55. }
  56. if(flag1==0)
  57. cout<<"safe"<<endl;
  58.  
  59. }
  60. }
  61. }
  62. return 0;
  63. }
Success #stdin #stdout 0s 4512KB
stdin
2
......
.2...2
stdout
safe
safe