fork download
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. struct rules
  4. {
  5. char c,p;
  6. };
  7. int main()
  8. {
  9. int t,i,n,j,flag=0;
  10. //char c[95],p[95],s[1000000],d;
  11. char s[1000000],d;
  12. struct rules rul[95];
  13. scanf("%d",&t);
  14. while(t)
  15. {
  16. //printf("enter no. of rules");
  17. scanf("%d",&n);
  18. //printf("rules");
  19. for(i=0;i<n;i++)
  20. {
  21. scanf(" %c %c",&((rul[i]).c),&((rul[i]).p));
  22. //scanf(" %c",&d);
  23.  
  24. //scanf(" %c",&d);
  25. }
  26. //printf("rules are");
  27. //for(i=0;i<n;i++)
  28. //{
  29. //printf(" %c %c\n",rul[i].c,rul[i].p);
  30. //}
  31. i=-1;
  32. //printf("string");
  33. scanf(" %s",s);
  34. //scanf("%c",&d);
  35. for(j=0;s[j]!='\0';j++)
  36. {
  37. for(i=0;i<n;i++)
  38. {
  39. if(s[j]==rul[i].c)
  40. {
  41. s[j]=rul[i].p;
  42. //printf("change");
  43. break;
  44. }
  45. }
  46. }
  47. //printf("%s\n",s);
  48. for(j=0;j<n;j++)
  49. {
  50. if(!(s[j]=='0'||s[j]=='.'))
  51. {
  52. flag=0;
  53. break;
  54. }
  55. }
  56. if(flag==1)
  57. {
  58. for(j=0;s[j]!='\0';j++)
  59. {
  60. while((s[j]=='0')&&(('0'<=s[j+1]<='9')||(s[j+1]='.')))
  61. {
  62. j=j+1;
  63. //printf("j changed");
  64. }
  65. while((s[j]!='\0') &&(s[j]!='.'))
  66. {
  67. printf("%c",s[j]);
  68. j=j+1;
  69. }
  70. if(s[j]=='.')
  71. {
  72. i=j;
  73. while(s[j]!='\0')
  74. {
  75. j=j+1;
  76. }
  77. j=j-1;
  78. //i=j;
  79. while((s[j]=='0') &&(('0'<=s[j-1]<='9') ||(s[j]=='.')))
  80. j=j-1;
  81. //i=j;
  82. //j=j+1;
  83. //if('0'<=s[j+1]<='9')
  84. {
  85. while(i!=j)
  86. {
  87. printf("%c",s[i]);
  88. i=i+1;
  89. }
  90. if(s[i]!='0'&&s[i]!='.')
  91. {
  92. printf("%c",s[i]);i=i+1;
  93. }
  94. }
  95.  
  96. }
  97. }
  98. }
  99. else
  100. printf("0");
  101. printf("\n");
  102. t=t-1;
  103. }
  104. return 0;
  105. }
Success #stdin #stdout 0s 3148KB
stdin
1
0
100
stdout
0