I participated in CodeSprint 3. Before you judge me, let me tell you, it was a complete failure. I was hardly able to solve 1 problem out of 7 and my batchmates solved 4 problems even after starting way later when I had.
I need to keep my mind focused on Coding or I can say Bye Bye to the Placements this December.
From now on , I am focusing on solving a test placement paper or a coding competition every day . I’ll make sure I do it.I don’t think I have a option though.
BTW, Quora is damn addictive. Hats off to Adam D’Angelo.
For Now, I am solving this problem Transformation (http://ace.delos.com/usacoprob2?a=UwGQkWxSfYb&S=transform) .
WTF! I am confused now , how do we pass a 2D array of size N*N into a function ? I guess, I’ll just use dynamic allocation.
YAY! I got it working , in the 2nd Time, I did a stupid mistake in the first time. Here is my code(Include Necessary library,I’m new to blogging, don’t know how to post code 😛 ):
/* ID: gautam11 PROG: transform LANG: C++ */ using namespace std; bool Compare(char **Tiles,char **modTiles,int N) { for(int i=0;i<N;i++) for(int j=0;j<N;j++) if(Tiles[i][j]!=modTiles[i][j]) return 0; return 1; } char** RotateBy90(char **Tiles,int N) { char **modTiles; modTiles=(char **)malloc(sizeof(char *)*N); for(int i=0;i<N;i++) modTiles[i]=(char *)malloc(sizeof(char)*N); for(int i=0;i<N;i++) for(int j=0;j<N;j++) modTiles[i][j]=Tiles[N-1-j][i]; return modTiles; } char** Reflection(char **Tiles,int N) { char **modTiles; modTiles=(char **)malloc(sizeof(char *)*N); for(int i=0;i<N;i++) modTiles[i]=(char *)malloc(sizeof(char)*N); for(int i=0;i<N;i++) for(int j=0;j<N;j++) modTiles[i][j]=Tiles[i][N-1-j]; return modTiles; } int main() { freopen ("transform.in", "r", stdin); freopen ("transform.out", "w", stdout); int N; Sint(N); char **Tiles; Tiles=(char **)malloc(sizeof(char *)*N); for(int i=0;i<N;i++) Tiles[i]=(char *)malloc(sizeof(char)*N); char **finalTiles; finalTiles=(char **)malloc(sizeof(char *)*N); for(int i=0;i<N;i++) finalTiles[i]=(char *)malloc(sizeof(char)*N); for(int i=0;i<N;i++) scanf("%s",Tiles[i]); for(int i=0;i<N;i++) scanf("%s",finalTiles[i]); char **modTiles; modTiles=RotateBy90(Tiles,N); if(Compare(modTiles,finalTiles,N)) { printf("1\n"); return 0; } modTiles=RotateBy90(modTiles,N); if(Compare(modTiles,finalTiles,N)) { printf("2\n"); return 0; } modTiles=RotateBy90(modTiles,N); if(Compare(modTiles,finalTiles,N)) { printf("3\n"); return 0; } modTiles=Reflection(Tiles,N); if(Compare(modTiles,finalTiles,N)) { printf("4\n"); return 0; } for(int i=0;i<3;i++) { modTiles=RotateBy90(modTiles,N); if(Compare(modTiles,finalTiles,N)) { printf("5\n"); return 0; } } if(Compare(Tiles,finalTiles,N)) { printf("6\n"); return 0; } printf("7\n"); return 0; }