fork(1) download
  1. //
  2. // main.c
  3. // NUMBERS
  4. //
  5. // Created by Dhruv Mullick on 24/11/13.
  6. // Copyright (c) 2013 Dhruv Mullick. All rights reserved.
  7. //
  8.  
  9. #include <stdio.h>
  10. #include <string.h>
  11.  
  12. struct p
  13. {
  14. long long int A;
  15. char name[6];
  16. };
  17.  
  18. void sort(struct p player[],int ibegin,int iend, struct p temp[]);
  19. void merge(struct p player[],int ibegin,int imid,int iend,struct p temp[]);
  20.  
  21. int main(void)
  22. {
  23. int n,i,c;
  24. long long int t;
  25. scanf("%d",&c);
  26.  
  27. while(c--)
  28. {
  29. scanf("%d",&n);
  30. struct p player[n];
  31. struct p temp[n];
  32.  
  33. for(i=0;i<n;i++)
  34. {
  35. fgets(player[i].name, 6, stdin);
  36. scanf("%lld", &player[i].A);
  37. }
  38.  
  39. sort(player,0,n,temp);
  40.  
  41. //For checking purpose only. String isn't getting printed.
  42. for(i=0;i<n;i++)
  43. {
  44. printf("%s", player[i].name);
  45. //fputs(player[i].name,stdout);
  46.  
  47. printf("%lld\n", player[i].A);
  48. }
  49.  
  50. for(i=0;i<n;i++)
  51. {
  52. t=player[i].A;
  53.  
  54. while((i+1)!=n && player[i+1].A==t)
  55. {
  56. i++;
  57. }
  58.  
  59. if(player[i].A==t)
  60. {
  61. fputs(player[i].name,stdout);
  62. printf("%lld\n", player[i].A);
  63. break;
  64. }
  65. }
  66.  
  67. if(i==n)
  68. {
  69. printf("Nobody wins.\n");
  70. }
  71.  
  72.  
  73. }
  74.  
  75. return 0;
  76. }
  77.  
  78. void merge(struct p player[],int ibegin,int imid,int iend,struct p temp[])
  79. {
  80. int a0, a1,j;
  81. j = ibegin;
  82. a0 = ibegin;
  83. a1 = imid;
  84.  
  85. while(j<iend)
  86. {
  87. if(a0<imid && ((a1>iend) || (player[a0].A < player[a1].A)))
  88. {
  89. temp[j].A = player[a0].A;
  90. strcpy(temp[j].name, player[a0].name);
  91. a0++;
  92. j++;
  93. }
  94.  
  95. else
  96. {
  97. temp[j].A = player[a1].A;
  98. strcpy(temp[j].name, player[a1].name);
  99. a1++;
  100. j++;
  101. }
  102. }
  103. }
  104.  
  105. void sort(struct p player[],int ibegin,int iend,struct p temp[])
  106. {
  107. int i;
  108.  
  109. if((iend - ibegin)==1)
  110. return;
  111.  
  112. int imid = (iend + ibegin)/2;
  113.  
  114. sort(player, ibegin, imid, temp);
  115. sort(player, imid, iend, temp);
  116.  
  117. merge(player, ibegin, imid, iend, temp);
  118.  
  119. for(i=ibegin;i<=iend;i++)
  120. {
  121. player[i] = temp[i];
  122. }
  123.  
  124. }
  125.  
Success #stdin #stdout 0s 2252KB
stdin
1
3
a
1
b
3
c
2
stdout
1

2
����a�_��KW�(v�rﭿ-4634814004864972064

1