v 0. Pasted by slipstak2 as cpp at 2011-11-01 07:46:00 MSK and set expiration to never.

Paste will expire never.

  1. // Очно-заочный кружок
  2. // Занятие №9. Олимпиадные задачи
  3. // Задача A. Распаковка строчки
  4. // ibelyaev: 31Oct2011
  5. // http://cppalgo.blogspot.com/2011/04/blog-post.html
  6.  
  7. #include <iostream>
  8. #include <cstdio>
  9. #include <algorithm>
  10. #include <string>
  11. #include <string.h>
  12. #include <cmath>
  13. #include <queue>
  14. #include <vector>
  15. #include <map>
  16. #include <stdlib.h> // for exit(0)
  17. #include <stack>
  18. #include <list>
  19. #include <ctime>
  20. #include <set>
  21.  
  22. using namespace std;
  23.  
  24. bool is_digit(char c) {
  25.     return '0' <= c && c <= '9';
  26. }
  27. void output(char c, int n) {
  28.     static int pos = 0;
  29.     for (int i = 0; i < n; ++i) {
  30.         printf("%c", c); pos++;
  31.         if (pos % 40 == 0)
  32.             printf("\n");
  33.     }
  34. }
  35. int main()
  36. {
  37.     freopen("input.txt","r",stdin);
  38.     freopen("output.txt","w",stdout);
  39.  
  40.     string str;
  41.     cin>>str;
  42.     int pos = 0;
  43.     while (pos < str.size()) {
  44.         int num = 0;
  45.         while (pos < str.size() && is_digit(str[pos]))
  46.             num = 10 * num + str[pos++] -'0';
  47.         char c = str[pos++];
  48.         output(c,num == 0 ? 1 : num);
  49.     }
  50.     return 0;
  51. }


Editing is locked.