fork download
  1. #include <iostream>
  2. #include <cstring>
  3.  
  4. using namespace std;
  5.  
  6. int main() {
  7. int t; //test case
  8. scanf("%d",&t);
  9. while(t>0)
  10. {
  11. int n,i,k,l,j,val,tl,m; // n-no of names i=no of new names k-
  12. // l-length of original string val - final value
  13. //tl - length of string in names list
  14. i=0;
  15. val=0;
  16. scanf("%d",&n);
  17. char a[100][20];
  18. while(n>0)
  19. { // printf("\n taking name %d\n",n);
  20. char s[20];
  21. char vote;
  22. scanf("%s %c",&s,&vote);
  23. l=strlen(s);
  24. if(i==0)
  25. {
  26. strcpy(a[i],s);
  27. a[i][l]=vote;
  28. // printf("first value %s and add %c",a[i],s[l-1]);
  29. if(vote=='+')
  30. val=1;
  31. else
  32. val=-1;
  33. i++;
  34. }
  35. else
  36. {
  37. //char b[20];
  38. //for(j=0;j<(l-2);j++)
  39. // b[j]=s[j];
  40. for(j=0;j<=i;j++)
  41. {
  42. tl=strlen(a[i])-1;
  43. k=0;
  44. if(tl==l)
  45. for(m=0;m<l;m++)
  46. { if(a[j][m]!=s[m])
  47. {
  48. k=1;
  49. break;
  50. }
  51. }
  52. if(k==0)
  53. break;
  54. }
  55. if(j>i) // no match found
  56. {
  57. i++;
  58. strcpy(a[i],s);
  59. a[i][l]=vote;
  60. if(vote=='+')
  61. val+=1;
  62. else
  63. val-=1;
  64. }
  65. else // match found
  66. {//printf("matches %s\n",a[j]);
  67. if( a[j][l-1]=='+')
  68. val-=1;
  69. else
  70. val+=1;
  71. if(vote=='+')
  72. val+=1;
  73. else
  74. val-=1;
  75. a[j][l-1]=vote;
  76.  
  77. }
  78.  
  79. }
  80. n--;
  81. // printf("value till now=%d\n",val);
  82. }
  83. //printf("\n test done for %d\n",t);
  84. printf("%d\n",val);
  85. t--;
  86. }
  87. return 0;
  88. }
Success #stdin #stdout 0s 2688KB
stdin
3
4
tilak +
tilak +
tilak -
tilak +
3
ratna +
shashi -
ratna -
3
bhavani -
bhavani +
bhavani -
stdout
3
-1
-1