fork(4) download
  1. #include<cstdio>
  2. #include<iostream>
  3. #include<algorithm>
  4. #include<map>
  5. using namespace std;
  6. int main(){
  7. int x;
  8. scanf("%d",&x);
  9. while(x--){
  10. long long int t,i,j,a=0;
  11. map<int,string> m;
  12. map<string,int> k;
  13. map<string,int> hash;
  14. scanf("%lld",&t);
  15. string s,s1="";
  16. for(i=0;i<t;i++){
  17. cin>>s;
  18. s1="";
  19. int count=0;
  20. for(j=4;j<s.length();j++){
  21. count+=(int)(s[j])*(j-3);
  22. s1=s1+s[j];
  23. }
  24. count*=19;
  25. count%=101;
  26. if(s[0]=='A'){
  27. if(hash[s1]==1){
  28. continue;
  29. }
  30. if(k[s1]!=-1){
  31.  
  32. if(m[count].length()==0){
  33. k[s1]=count;
  34. m[count]=s1;
  35. hash[s1]=1;
  36. a++;
  37. }
  38. else{
  39. int y=1;
  40. while(y!=20){
  41. int z=(count+y*y+23*y)%101;
  42. if(m[z].length()==0){
  43. m[z]=s1;
  44. k[s1]=z;
  45. hash[s1]=1;
  46. a++;
  47. break;
  48. }
  49. y++;
  50. }
  51. }
  52. }
  53. }
  54. else{
  55. if(hash[s1]==1 && m[k[s1]].length()!=0){ m[k[s1]]=""; k[s1]=-1; hash[s1]=-1; a--; }
  56.  
  57.  
  58.  
  59. }
  60. }
  61. printf("%lld\n",a);
  62. for(i=0;i<101;i++){
  63. if(m[i].length()!=0)
  64. cout<<i<<":"<<m[i]<<endl;
  65. }
  66. printf("\n");
  67. }
  68. return 0;
  69. }
  70.  
  71.  
  72.  
Success #stdin #stdout 0s 2832KB
stdin
1
11
ADD:marsz
ADD:marsz
ADD:Dabrowski
ADD:z
ADD:ziemii
ADD:wloskiej
ADD:do
ADD:Polski
DEL:od
DEL:do
DEL:wloskiej
stdout
5
34:Dabrowski
46:Polski
63:marsz
76:ziemii
96:z