fork download
  1. #include <iostream>
  2. #include <string>
  3. #include <cstdio>
  4. #include <sstream>
  5. using namespace std;
  6. string napis;
  7. string calosc;
  8. int jeden;
  9.  
  10. void znajdz(string &napis)
  11. {
  12. int wielkosc_napisu=napis.length();
  13. int pomocnicza=0;
  14. string szukaj;
  15. string literka;
  16. string p_napis;
  17. int help=0;
  18. p_napis=napis;
  19.  
  20. for(int i=0; i<wielkosc_napisu-1; i++)
  21. {
  22. if(napis[i]==napis[i+1])
  23. {
  24. pomocnicza++;
  25. szukaj=napis[i];
  26. }else
  27. {
  28. literka=napis[i];
  29. napis.erase(0,1);
  30. break;
  31. }
  32.  
  33. }
  34. if(pomocnicza+1==wielkosc_napisu)
  35. help=1;
  36. else
  37. help=0;
  38. size_t pozycja=napis.find(szukaj);
  39. if(pomocnicza>=2){
  40. int o;
  41. o = pomocnicza+1;
  42. ostringstream ss;
  43. ss << o;
  44. string str = ss.str();
  45. p_napis.erase(pozycja,pomocnicza);
  46. p_napis.insert(pozycja+1,str);
  47. p_napis.erase(2,wielkosc_napisu-2);
  48. int k=o%10;
  49. ostringstream kk;
  50. kk << k;
  51. string strr = kk.str();
  52. if(pomocnicza>8)
  53. p_napis.insert(pozycja+2,strr);
  54. if(pomocnicza>98)
  55. p_napis.insert(pozycja+1,"1");
  56. calosc+=p_napis;
  57. napis.erase(0,pomocnicza+help);
  58. }else
  59. calosc+=literka;
  60. if(wielkosc_napisu<3)
  61. {
  62. calosc+=napis;
  63. napis.erase(0,wielkosc_napisu);
  64. }
  65. jeden=napis.length();
  66. }
  67. int main()
  68. {
  69. int Test=0;
  70. cin>>Test;
  71. for(int i=0; i<Test; i++)
  72. {
  73. calosc="";
  74. cin>>napis;
  75. do{
  76. znajdz(napis);
  77. }while(jeden!=0);
  78. cout<<calosc<<endl;
  79. }
  80. return 0;
  81. }
  82.  
  83.  
  84.  
Success #stdin #stdout 0s 16072KB
stdin
Standard input is empty
stdout
Standard output is empty