#include <iostream> #include <string> using namespace std; int parseInt(char a) { return a - '0'; } int parseInt(char a, char b) { int result = (a - '0') * 10 + (b - '0'); return result; } void print1(int start, int end, int step) { cout << start; for (int i = start + step+1; i <= end; i += step + 1) { cout << ' ' << i; } cout << endl; } void print2(int start, int end, int step) { cout << start; for (int i = start - step-1; i >= end; i -= step + 1) { cout << ' ' << i; } cout << endl; } int main() { string s; while (1) { int num[3] = { 0 }; getline(cin, s); if (s.size() < 3) { int a; if (s.size() == 1) a = parseInt(s[0]); else a = parseInt(s[0], s[1]); if (a == 0) break; print1(1, a, 0); } else { int len = 0, idx; int k = 0; for (int i = 0; i < s.size(); ++i) { if (s[i] == ' ') { idx = i; if (len == 1) num[k++] = parseInt(s[i - 1]); else num[k++] = parseInt(s[i - 2], s[i - 1]); len = 0; } else len++; } s = s.substr(idx + 1, s.size() - idx); if (s.size() == 1) num[k] = parseInt(s[0]); else num[k] = parseInt(s[0], s[1]); if (k + 1 == 2) { if (num[0] < num[1]) { print1(num[0], num[1], 0); } else { print2(num[0], num[1], 0); } } else { if (num[0] < num[1]) { print1(num[0], num[1], num[2]); } else print2(num[0], num[1], num[2]); } } } return 0; } |
Double click to view unformatted code.