Let's define logical OR as an operation on two logical values (i. e. values that belong to the set {0,?1}) that is equal to 1 if either or both of the logical values is set to 1, otherwise it is 0. We can define logical OR of three or more logical values in the same manner:
where is equal to 1 if some ai?=?1, otherwise it is equal to 0.
Nam has a matrix A consisting of m rows and n columns. The rows are numbered from 1 to m, columns are numbered from 1 to n. Element at row i (1?¡Ü?i?¡Ü?m) and column j (1?¡Ü?j?¡Ü?n) is denoted as Aij. All elements of A are either 0 Z†·Ÿ"http://www.Bkjia.com/kf/ware/vc/" target="_blank" class="keylink">vciAxLiBGcm9tIG1hdHJpeCA8ZW0+QTwvZW0+LAogTmFtIGNyZWF0ZXMgYW5vdGhlciBtYXRyaXggPGVtPkI8L2VtPiBvZiB0aGUgc2FtZSBzaXplIHVzaW5nIGZvcm11bGE6PC9wPgo8cD4KPGltZyBhbGlnbj0="middle" class="tex-formula" src="http://www.bkjia.com/uploads/allimg/141115/04045L1a-2.png" alt="\">.
(Bij is OR of all elements in row i and column j of matrix A)
Nam gives you matrix B and challenges you to guess matrix A. Although Nam is smart, he could probably make a mistake while calculating matrix B, since size of A can be large.
InputThe first line contains two integer m and n (1?¡Ü?m,?n?¡Ü?100), number of rows and number of columns of matrices respectively.
The next m lines each contain n integers separated by spaces describing rows of matrix B (each element of B is either 0 or 1).
OutputIn the first line, print "NO" if Nam has made a mistake when calculating B, otherwise print "YES". If the first line is "YES", then also print mrows consisting of n integers representing matrix A that can produce given matrix B. If there are several solutions print any one.
Sample test(s) input2 2 1 0 0 0output
NOinput
2 3 1 1 1 1 1 1output
YES 1 1 1 1 1 1input
2 3 0 1 0 1 1 1output
YES 0 0 0 0 1 0
½âÌâ˼·£º
ÌâÄ¿´óÒâ¾ÍÊǸøÄãmºÍn£¬½ÓÏÂÀ´ÊäÈëm*nµÄB¾ØÕó£¬ÎÊÊÇ·ñ´æÔÚÒ»¸öm*nµÄA¾ØÕó£¬Ê¹µÃ¶ÔÓÚBijÕâ¸öÔªËØÀ´Ëµ£¬ËüÊÇÓÉA¾ØÕóµÄµÚiÐÐËùÓÐÔªËغ͵ÚjÁÐËùÓÐÔªËØ¡°»òÔËË㡱µÃÀ´¡£´æÔڵĻ°Êä³öYES£¬²¢Êä³öÈÎÒâÒ»×é·ûºÏÌõ¼þµÄA¾ØÕ󣬷ñÔòÊä³öNO¡£
Îҵķ½·¨»¹ÊÇÆ«±©Á¦£¬Ê×ÏÈ¿ªÒ»¸ö¶þάÊý×é´æA¾ØÕ󣬲¢¶ÔÆä³õʼ»¯ÔªËØȫΪ1¡£Ê×ÏÈÕâÑù¿¼ÂÇ£¬Èç¹ûBij¶ÔÓ¦µÄ值Ϊ0£¬ÄÇôA¾ØÕóµÄµÚiÐк͵ÚjÁÐÒ»¶¨È«²¿Îª0£¬³öÏÖÒ»¸ö1¶¼²»ÐУ¬ÒòΪ¡°»òÔËË㡱ȫ0³ö0¡£ÕâÑù¸üÐÂÒ»±éºó£¬A¾ØÕóµÄ0µÄλÖþÍÄÜÈ«²¿È·¶¨ÁË¡£½ÓÏÂÀ´×Á¦µÄ²¿·ÖO£¨n*m*max(n,m)£©µÄÅжÏA¾ØÕóÿ¸öλÖõÄÔªËØÊÇ·ñÂú×ãB¾ØÕóÖÐ0»ò1µÄÌõ¼þ¡£×îºóflagû±äµÄ»°£¬ËµÃ÷´æÔÚÕâÑùµÄA¾ØÕó£¬Í¬Ê±A¾ØÕóÒ²±»ÎÒÃǸüкÃÁË£¬Êä³ö¼´¿É£»·´Ö®£¬²»´æÔÚÊä³öNO¡£
ÍêÕû´úÂ룺
#include#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include
#include