Run Time: 0.006
Ranking (as of 2016-03-22): 5 out of 114
Language: C++
/* UVa 12155 - ASCII Diamond To build using Visual Studio 2012: cl -EHsc -O2 UVa_12155_ASCII_Diamond.cpp */ const int nr_letters = 'z' - 'a' + 1, col_max = 20000; char buff[col_max + 2]; #include <cstdio> #include <cstdlib> int main() { for (int serial = 1; ; serial++) { int N, row1, col1, row2, col2; scanf("%d %d %d %d %d", &N, &row1, &col1, &row2, &col2); if (!N) break; printf("Case %d:\n", serial); int size = 2 * N - 1, center = N - 1; buff[col2 - col1 + 1] = '\0'; for (int r = row1; r <= row2; r++) { char* p = buff; for (int c = col1; c <= col2; c++, p++) { int i = abs(r % size - center) + abs(c % size - center); *p = (i < N) ? 'a' + i % nr_letters: '.'; } puts(buff); } } return 0; }
No comments:
Post a Comment