fork(4) download
  1. #include <iostream>
  2. #include <cstring>
  3. #include <string.h>
  4. #include <sstream>
  5.  
  6. using namespace std;
  7.  
  8. int main(int argc, char** argv)
  9. {
  10. int x;
  11. cin >> x;
  12. string *napis = new string [x];
  13. cin.get();
  14. for(int i=0; i<x; i++)
  15. {
  16. getline(cin, napis[i]);
  17. }
  18. for(int i=0; i<x; i++)
  19. {
  20. for(int j=0; napis[i][j]!='\0'; j++)
  21. {
  22. if(napis[i][j] == napis[i][j+1])
  23. {
  24. bool k = true;
  25. int licznik = 1;
  26. for(; k; licznik++)
  27. {
  28. if(napis[i][j+licznik] != napis[i][j+licznik+1]) k = false;
  29. }
  30. if( licznik < 3 ) continue;
  31. stringstream ss;
  32. ss << licznik;
  33. string liczba = ss.str();
  34. int iloscCyfr;
  35. for(int k=j+1, l=0; liczba[l]!='\0'; k++, l++)
  36. {
  37. napis[i][k] = liczba[l];
  38. iloscCyfr = l+1;
  39. }
  40. for(int m=0; m<(licznik-iloscCyfr-1); m++)
  41. {
  42. for(int s=j+iloscCyfr+1; napis[i][s]!='\0'; s++)
  43. {
  44. napis[i][s] = napis[i][s+1];
  45. }
  46. }
  47. }
  48. }
  49. }
  50. for (int i=0; i<x; i++)
  51. {
  52. cout << napis[i] <<endl;
  53. }
  54. delete [] napis;
  55. return 0;
  56. }
Success #stdin #stdout 0s 4484KB
stdin
4
OPSS
ABCDEF
ABBCCCDDDDEEEEEFGGHIIJKKKL
AAAAAAAAAABBBBBBBBBBBBBBBB
stdout
OPSS
ABCDEF
ABBC3D4E5FGGHIIJK3L
A10B16