fork(7) download
  1. #include<stdio.h>
  2. #include<string.h>
  3. int compare(char *s,int n1,int n2,int p1,int p2)
  4. {
  5. int cp=0,cn=0,nl,pl,ic,jc,kc=0,fc=0;
  6. ///////////
  7. pl = p2-p1;
  8. nl = n2-n1;
  9. ic=p1;
  10. while(fc==0&&ic<=p2)
  11. {
  12.  
  13. if(s[ic++]=='0')
  14. {
  15. cp++;
  16. }
  17. else
  18. fc=1;
  19. }
  20. jc = n1;
  21. fc=0;
  22. while(fc==0&&jc<=n2)
  23. {
  24. if(s[jc++]=='0')
  25. {
  26. cn++;
  27. }
  28. else
  29. {
  30. fc=1;
  31. }
  32. }
  33. if((pl-cp)>(nl-cn)) return 1;
  34. else if((pl-cp)==(nl-cn))
  35. {
  36. while(kc<=pl)
  37. {
  38. if(s[p1 + kc]>s[n1 + kc]) return 1;
  39. else if(s[p1 + kc]==s[n1 +kc])
  40. kc++;
  41. else
  42. return 2;
  43. }
  44. }
  45. else
  46. return 2;
  47. ///////////
  48. }
  49. int main()
  50. {
  51. char s[1001],n[1001];
  52. int p1=0,p2=0,n1=0,n2=0,i,j,len,flag=0,alpha=0,res;
  53. scanf("%s",s);
  54. len = strlen(s);
  55. for(i=0;i<len;i++)
  56. {
  57. if(48<=s[i]&&s[i]<58)
  58. {
  59. n[i]=s[i];
  60. n2++;
  61. if(i==len-1)
  62. n2=i;
  63. }
  64. else if(flag==0)
  65. {
  66. n[i]='9';
  67. alpha = i;
  68. flag=1;
  69. n2++;
  70. }
  71. else
  72. {
  73. n[i]='9';
  74. res = compare(n,n1,n2-1,p1,p2);
  75. //printf("compare 1 :(%d %d) (%d %d) = %d ",n1,n2-1,p1,p2,res);
  76. if(res==2)
  77. {
  78. p1=n1;
  79. p2=n2-1;
  80. }
  81. n1=alpha;
  82. res=compare(n,n1,n2-1,p1,p2);
  83. //printf("\ncompare 2 :(%d %d) (%d %d) = %d ",n1,n2-1,p1,p2,res);
  84. if(res==2)
  85. {
  86. p1=n1;
  87. p2=n2-1;
  88. }
  89. n1=alpha+1;
  90. if(i==len-1)
  91. n2=i;
  92. else
  93. n2=i+1;
  94. alpha=i;
  95. flag=1;
  96. }
  97.  
  98. }
  99. res = compare(n,n1,n2,p1,p2);
  100. //printf("\ncompare 3 :(%d %d) (%d %d) = %d\n ",n1,n2,p1,p2,res);
  101. if(res==2)
  102. {
  103. p1=n1;
  104. p2=n2;
  105. }
  106. flag=0;
  107. for(i=p1;i<=p2;i++)
  108. {
  109. if(flag==0&&p1!=p2&&n[i]=='0')
  110. ;
  111. else
  112. {
  113. flag=1;
  114. printf("%c",n[i]);
  115. }
  116. }
  117. return 0;
  118. }
  119.  
Success #stdin #stdout 0s 2900KB
stdin
Standard input is empty
stdout