• Source
    1. #include<bits/stdc++.h>
    2. #define mx 10005
    3. using namespace std;
    4.  
    5. vector<int>vec1,vec2,vec3,vec4,vec5,vec6;
    6.  
    7. bool arr1[mx];
    8. bool arr2[mx];
    9. bool arr3[mx];
    10.  
    11. struct data
    12. {
    13. int num,sz;
    14.  
    15. } arr[5];
    16.  
    17. bool cmp(data lhs,data rhs)
    18. {
    19. return lhs.sz>rhs.sz;
    20. }
    21.  
    22. int main()
    23. {
    24. int test,S1,S2,S3,i,j,k,n,tag,x,a;
    25.  
    26. scanf("%d",&test);
    27.  
    28. for(x=1; x<=test; x++)
    29. {
    30.  
    31. scanf("%d",&S1);
    32. for(i=1; i<=S1; i++)
    33. {
    34. scanf("%d",&n);
    35. vec1.push_back(n);
    36. arr1[n]=true;
    37. }
    38.  
    39. scanf("%d",&S2);
    40. for(i=1; i<=S2; i++)
    41. {
    42. scanf("%d",&n);
    43. vec2.push_back(n);
    44. arr2[n]=true;
    45. }
    46.  
    47. scanf("%d",&S3);
    48. for(i=1; i<=S3; i++)
    49. {
    50. scanf("%d",&n);
    51. vec3.push_back(n);
    52. arr3[n]=true;
    53. }
    54.  
    55. tag=0;
    56.  
    57. for(i=0; i<S1; i++)
    58. {
    59. a=vec1[i];
    60.  
    61. if(arr2[a]==false && arr3[a]==false)
    62. {
    63. vec4.push_back(a);
    64. }
    65. }
    66.  
    67. for(i=0; i<S2; i++)
    68. {
    69. a=vec2[i];
    70.  
    71. if(arr1[a]==false && arr3[a]==false)
    72. {
    73. vec5.push_back(a);
    74. }
    75. }
    76.  
    77. for(i=0; i<S3; i++)
    78. {
    79. a=vec3[i];
    80.  
    81. if(arr1[a]==false && arr2[a]==false)
    82. {
    83. vec6.push_back(a);
    84. }
    85. }
    86.  
    87. sort(vec4.begin(),vec4.end());
    88. sort(vec5.begin(),vec5.end());
    89. sort(vec6.begin(),vec6.end());
    90.  
    91.  
    92. arr[0].sz=vec4.size();
    93. arr[0].num=1;
    94.  
    95. arr[1].sz=vec5.size();
    96. arr[1].num=2;
    97.  
    98. arr[2].sz=vec6.size();
    99. arr[2].num=3;
    100.  
    101. sort(arr,arr+3,cmp);
    102.  
    103. printf("Case #%d:\n%d",x,arr[0].num);
    104.  
    105. if(arr[0].num==1)
    106. {
    107. printf(" %d",vec4.size());
    108.  
    109. for(i=0; i<arr[0].sz; i++)
    110. {
    111. printf(" %d",vec4[i]);
    112. }
    113. printf("\n");
    114. }
    115. else if(arr[0].num==2)
    116. {
    117. printf(" %d",vec5.size());
    118. for(i=0; i<arr[0].sz; i++)
    119. {
    120. printf(" %d",vec5[i]);
    121. }
    122. printf("\n");
    123. }
    124.  
    125. else if(arr[0].num==3)
    126. {
    127. printf(" %d",vec6.size());
    128. for(i=0; i<arr[0].sz; i++)
    129. {
    130. printf(" %d",vec6[i]);
    131. }
    132. printf("\n");
    133. }
    134.  
    135. if(arr[0].sz==arr[1].sz)
    136. {
    137. printf("%d",arr[1].num);
    138.  
    139. if(arr[1].num==1)
    140. {
    141. printf(" %d",vec4.size());
    142. for(i=0; i<arr[0].sz; i++)
    143. {
    144. printf(" %d",vec4[i]);
    145. }
    146. printf("\n");
    147. }
    148. else if(arr[1].num==2)
    149. {
    150. printf(" %d",vec5.size());
    151. for(i=0; i<arr[0].sz; i++)
    152. {
    153. printf(" %d",vec5[i]);
    154. }
    155. printf("\n");
    156. }
    157.  
    158. else if(arr[1].num==3)
    159. {
    160. printf(" %d",vec6.size());
    161. for(i=0; i<arr[0].sz; i++)
    162. {
    163. printf(" %d",vec6[i]);
    164. }
    165. printf("\n");
    166. }
    167. }
    168. if(arr[0].sz==arr[2].sz)
    169. {
    170. printf("%d",arr[2].num);
    171.  
    172. if(arr[2].num==1)
    173. {
    174. printf(" %d",vec4.size());
    175. for(i=0; i<arr[0].sz; i++)
    176. {
    177. printf(" %d",vec4[i]);
    178. }
    179. printf("\n");
    180. }
    181. else if(arr[2].num==2)
    182. {
    183. printf(" %d",vec5.size());
    184. for(i=0; i<arr[0].sz; i++)
    185. {
    186. printf(" %d",vec5[i]);
    187. }
    188. printf("\n");
    189. }
    190.  
    191. else if(arr[2].num==3)
    192. {
    193. printf(" %d",vec6.size());
    194. for(i=0; i<arr[0].sz; i++)
    195. {
    196. printf(" %d",vec6[i]);
    197. }
    198. printf("\n");
    199. }
    200. }
    201.  
    202. vec1.clear();
    203. vec2.clear();
    204. vec3.clear();
    205. vec4.clear();
    206. vec5.clear();
    207. vec6.clear();
    208.  
    209. memset(arr1,false,sizeof(arr1));
    210. memset(arr2,false,sizeof(arr2));
    211. memset(arr3,false,sizeof(arr3));
    212. }
    213.  
    214. return 0;
    215. }