Advertisement
Guest User

timbre

a guest
Jan 27th, 2020
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.61 KB | None | 0 0
  1. #include <fstream>
  2. #include <cstring>
  3. using namespace std;
  4. ifstream fin ("timbre.in");
  5. ofstream fout ("timbre.out");
  6. char serii[101][60],sir[60];
  7. int cer,n,j,i,gasit,nrs,fr[101][1001];
  8. int ss[101],vm,s,sm,k;
  9. char seriem[101][60];
  10. int main()
  11. {
  12. fin>>cer;
  13. if(cer==1)
  14. {
  15. fin>>n;
  16. nrs=0;
  17. fin.get();
  18. for(i=1;i<=n;i++)
  19. {
  20. fin.getline(sir,60);
  21. for(j=strlen(sir)-1;j>=0;j--)
  22. if(sir[j]==' ')
  23. {
  24. sir[j]='\0';
  25. break;
  26. }
  27. gasit=0;
  28. for(j=1;j<=nrs;j++)
  29. if(strcmp(sir,serii[j])==0)
  30. {
  31. gasit=1;
  32. break;
  33. }
  34. if(gasit==0)
  35. {
  36. nrs++;
  37. strcpy(serii[nrs],sir);
  38. }
  39. }
  40. fout<<nrs;
  41. return 0;
  42. }
  43.  
  44.  
  45. int k,v,z,nr;
  46. fin>>n;
  47. fin.get();
  48. for(i=1;i<=n;i++)
  49. {
  50. fin.getline(sir,60);
  51. z=strlen(sir)-1;
  52. for(j=z;j>=0;j--)
  53. if(sir[j]==' ')
  54. {
  55. sir[j]='\0';
  56. break;
  57. }
  58. v=0;
  59. for(k=j+1;k<=z;k++)
  60. v=v*10+sir[k]-'0';
  61. gasit=0;
  62. for(j=1;j<=nrs;j++)
  63. if(strcmp(sir,serii[j])==0)
  64. {
  65. gasit=1;
  66. fr[j][v]++;
  67. break;
  68. }
  69. if(gasit==0)
  70. {
  71. nrs++;
  72. strcpy(serii[nrs],sir);
  73. fr[nrs][v]=1;
  74. }
  75. }
  76. if(cer==2)
  77. {
  78. nr=0;
  79. for(i=1;i<=nrs;i++)
  80. for(j=1;j<=1000;j++)
  81. if(fr[i][j]==1)
  82. nr++;
  83. fout<<nr;
  84. return 0;
  85. }
  86. if(cer==3)
  87. {
  88. vm=0;
  89. for(i=1;i<=nrs;i++)
  90. {
  91. s=0;
  92. for(j=1;j<=1000;j++)
  93. if(fr[i][j]!=0)
  94. s+=j;
  95. ss[i]=s;
  96. if(s>sm)
  97. sm=s;
  98. }
  99. k=0;
  100. for(i=1;i<=nrs;i++)
  101. if(ss[i]==sm)
  102. {
  103. k++;
  104. strcpy(seriem[k],serii[i]);
  105. }
  106. for(i=1;i<=k;i++)
  107. for(j=i+1;j<=k;j++)
  108. if(strcmp(seriem[i],seriem[j])>0)
  109. {
  110. char aux[60];
  111. strcpy(aux,seriem[i]);
  112. strcpy(seriem[i],seriem[j]);
  113. strcpy(seriem[j],aux);
  114. }
  115. for(i=1;i<=k;i++)
  116. fout<<seriem[i]<<endl;
  117. }
  118. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement