fork download
  1. #include<cstdio>
  2. #include<cstring>
  3. #include<string>
  4.  
  5. int Ile(int & a, int & b, int l, std::string sb[], char * tab)
  6. {
  7. if (strlen(tab) < 4)
  8. {
  9. sb[0] = tab;
  10. return 1;
  11. }
  12.  
  13. if (l % 3 == 0)
  14. {
  15. a = l / 3;
  16. b = 0;
  17. }
  18. else if (l % 3 == 1)
  19. {
  20. a = (l / 3) - 1;
  21. b = 2;
  22. }
  23. else
  24. {
  25. a = l / 3;
  26. b = 1;
  27. }
  28.  
  29. int h = 0, k = 0;
  30.  
  31. for (int i = 0; i < a; i++)
  32. {
  33. for (int j = 0; j < 3; j++)
  34. sb[h] += tab[k++];
  35. h++;
  36. }
  37.  
  38. for (int i = 0; i < b; i++)
  39. {
  40. for (int j = 0; j < 2; j++)
  41. sb[h] += tab[k++];
  42.  
  43. h++;
  44. }
  45.  
  46. return h;
  47.  
  48. }
  49.  
  50. int main()
  51. {
  52. int n; scanf("%d", &n);
  53. char tab[1001];
  54. int k = 0;
  55. while (scanf("%s", tab) > 0)
  56. {
  57. std::string sb[1000] = {""};
  58. int l = strlen(tab);
  59.  
  60. int ile3, ile2;
  61. int h = Ile(ile3, ile2, l, sb, tab);
  62. //printf("%d\n", h);
  63. for (int i = 0; i < h; i++)
  64. {
  65. if (i == 0 && k > 0)
  66. {
  67. printf(" ");
  68. k++;
  69. }
  70.  
  71. k += sb[i].length();
  72. //printf("%d\n", k);
  73.  
  74. if (k >= n)
  75. {
  76. if (i == 0)
  77. {
  78. printf("\n%s", sb[i].c_str());
  79. k = sb[i].length();
  80. }
  81. else if (k == n && i == h - 1)
  82. {
  83. printf("%s\n", sb[i].c_str());
  84. k = 0;
  85. }
  86. else
  87. {
  88. printf("-\n%s", sb[i].c_str());
  89. k = sb[i].length();
  90. }
  91. }
  92. else
  93. {
  94. printf("%s", sb[i].c_str());
  95. }
  96. }
  97.  
  98. }
  99. return 0;
  100. }
Success #stdin #stdout 0.01s 5272KB
stdin
10
zawody w programowaniu

czasem wymagaja rozwiazywania zadan
stdout
zawody w 
programow-
aniu cza-
sem wym-
agaja roz-
wiazywania
zadan