- #include <stdlib.h> 
- #include <stdio.h> 
-   
- int main() 
- { 
-     int rows = 5, cols = 5; 
-   
-     int ** board = (int **)malloc(rows * sizeof(int*)); //pointer to a table of pointers 
-     //*board points to an array which stores addresses of the first column of each row 
-     //board[0] = first row 
-     //board[1] = second row 
-     //board[0][0] =  first column of first row 
-     //board[2][3] = 4th column of 3rd row 
-   
-     board[0] = (int *)malloc(rows * cols * sizeof(int*)); //allocate memory for the whole board in one shot 
-   
-     for(int i = 1; i < rows; i++) 
-        board[i] = *board + cols*i; //set the table of pointers 
-   
-    //testing code 
-    //fill the first row with multiples of 1 (0, 1, 2, 3, 4) 
-    //fill the second row with multiples of 2 (0, 2, 4, 6, 8) 
-    //. 
-    //. 
-    //. 
-    for(int i = 0; i < rows; i++) 
-    		for(int j = 0; j < cols; j++) 
-    		    board[i][j] = (i+1)*j; 
-   
-     //printfs to check if the code is correct 
-    	for(int i = 0; i < rows; i++) 
-    	{ 
-    		for(int j = 0; j < cols; j++) 
-    		    printf("%d ", board[i][j]); 
-    		printf("\n"); 
-    	} 
- } 
				I2luY2x1ZGUgPHN0ZGxpYi5oPgojaW5jbHVkZSA8c3RkaW8uaD4KCmludCBtYWluKCkKewogICAgaW50IHJvd3MgPSA1LCBjb2xzID0gNTsKICAgIAogICAgaW50ICoqIGJvYXJkID0gKGludCAqKiltYWxsb2Mocm93cyAqIHNpemVvZihpbnQqKSk7IC8vcG9pbnRlciB0byBhIHRhYmxlIG9mIHBvaW50ZXJzCiAgICAvLypib2FyZCBwb2ludHMgdG8gYW4gYXJyYXkgd2hpY2ggc3RvcmVzIGFkZHJlc3NlcyBvZiB0aGUgZmlyc3QgY29sdW1uIG9mIGVhY2ggcm93CiAgICAvL2JvYXJkWzBdID0gZmlyc3Qgcm93CiAgICAvL2JvYXJkWzFdID0gc2Vjb25kIHJvdwogICAgLy9ib2FyZFswXVswXSA9ICBmaXJzdCBjb2x1bW4gb2YgZmlyc3Qgcm93CiAgICAvL2JvYXJkWzJdWzNdID0gNHRoIGNvbHVtbiBvZiAzcmQgcm93CiAgICAKICAgIGJvYXJkWzBdID0gKGludCAqKW1hbGxvYyhyb3dzICogY29scyAqIHNpemVvZihpbnQqKSk7IC8vYWxsb2NhdGUgbWVtb3J5IGZvciB0aGUgd2hvbGUgYm9hcmQgaW4gb25lIHNob3QKICAgIAogICAgZm9yKGludCBpID0gMTsgaSA8IHJvd3M7IGkrKykKICAgICAgIGJvYXJkW2ldID0gKmJvYXJkICsgY29scyppOyAvL3NldCB0aGUgdGFibGUgb2YgcG9pbnRlcnMKCiAgIC8vdGVzdGluZyBjb2RlCiAgIC8vZmlsbCB0aGUgZmlyc3Qgcm93IHdpdGggbXVsdGlwbGVzIG9mIDEgKDAsIDEsIDIsIDMsIDQpCiAgIC8vZmlsbCB0aGUgc2Vjb25kIHJvdyB3aXRoIG11bHRpcGxlcyBvZiAyICgwLCAyLCA0LCA2LCA4KQogICAvLy4KICAgLy8uCiAgIC8vLgogICBmb3IoaW50IGkgPSAwOyBpIDwgcm93czsgaSsrKQogICAJCWZvcihpbnQgaiA9IDA7IGogPCBjb2xzOyBqKyspCiAgIAkJICAgIGJvYXJkW2ldW2pdID0gKGkrMSkqajsKICAgCQkgICAgCiAgICAvL3ByaW50ZnMgdG8gY2hlY2sgaWYgdGhlIGNvZGUgaXMgY29ycmVjdAogICAJZm9yKGludCBpID0gMDsgaSA8IHJvd3M7IGkrKykKICAgCXsKICAgCQlmb3IoaW50IGogPSAwOyBqIDwgY29sczsgaisrKQogICAJCSAgICBwcmludGYoIiVkICIsIGJvYXJkW2ldW2pdKTsKICAgCQlwcmludGYoIlxuIik7CiAgIAl9Cn0=