UVA Solution 466 - Mirror Mirror - Solution in C,C++
UVA Online Judge Solution 466 - Mirror Mirror | Volume 4UVA Problem Link - 466 - Mirror Mirror
Problem Name: 466 - Mirror Mirror
Problem Number : UVA - 466 - Mirror Mirror
Online Judge : UVA Online Judge Solution
Volume: 4
Solution Language : C plus plus
UVA Solution 466 - Mirror Mirror Code in CPP:
#include <stdio.h> #include <string.h> void rotate(char a[][20], char buf[][20], int n) { int i, j; for(i = 0; i < n; i++) for(j = 0; j < n; j++) buf[j][n-1-i] = a[i][j]; } void reflect(char a[][20], char buf[][20], int n) { int i, j; for(i = 0; i < n; i++) for(j = 0; j < n; j++) buf[n-1-i][j] = a[i][j]; } int main() { int n, cases = 0; char a[20][20], b[20][20], c[20][20], d[20][20]; int i, j, k; while(scanf("%d", &n) == 1) { memset(a, 0, sizeof(a)); memset(b, 0, sizeof(b)); memset(c, 0, sizeof(c)); memset(d, 0, sizeof(d)); for(i = 0; i < n; i++) scanf("%s %s", a[i], b[i]); printf("Pattern %d was ", ++cases); if(memcmp(a, b, sizeof(a)) == 0) { puts("preserved."); continue; } memcpy(c, a, sizeof(c)); for(i = 0; i < 3; i++) { rotate(c, d, n); if(memcmp(d, b, sizeof(c)) == 0) { printf("rotated %d degrees.\n", i*90+90); break; } memcpy(c, d, sizeof(c)); } if(i != 3) continue; reflect(a, c, n); if(memcmp(c, b, sizeof(c)) == 0) { puts("reflected vertically."); continue; } for(i = 0; i < 3; i++) { rotate(c, d, n); if(memcmp(d, b, sizeof(c)) == 0) { printf("reflected vertically and rotated %d degrees.\n", i*90+90); break; } memcpy(c, d, sizeof(c)); } if(i != 3) continue; puts("improperly transformed."); } return 0; }
Tags: UVA Online Judge Solution, UVA OJ Solution list, UVA Problems Solution, UVA solver, UVA all problem solution list, UVA 466 - Mirror Mirror code in C, UVA 466 code in C++, UVA 466 solution in C, UVA solution
No comments:
Post a Comment