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. cout<<f<<l<<endl;
  38. }
  39. }
  40. int n1=t1.size();
  41. int flag1=0;
  42. for(int i=0;i<n1-1;i++)
  43. {
  44. int flag=0;
  45. for(int j=1;j<n1;j++)
  46. {
  47. if(i!=j && t2[j]<=t1[i])
  48. {
  49. cout<<"unsafe"<<endl;
  50. flag=1;
  51. flag1=1;
  52. break;
  53. }
  54. if(flag==1)
  55. break;
  56. }
  57. if(flag1==0)
  58. cout<<"safe"<<endl;
  59.  
  60. }
  61. }
  62. }
  63. return 0;
  64. }
Success #stdin #stdout 0s 4512KB
stdin
2
.....
.2...2
stdout
safe
03
35
safe