= - = -= =- = -= -= -= - =- = -=
import java.io.*;
import java.util.*;
import java.math.*;
import java.text.*;
public class Main{
public static void main(String ss[])
{
DecimalFormat f = new DecimalFormat("#0.00");
Scanner in = new Scanner( new BufferedInputStream ( System.in ) );
f.setRoundingMode(RoundingMode.HALF_UP); // 默认是HALF_EVEN, 需要改成HALF_UP
int n, m;
while( in.hasNext() )
{
int cnt = 0;
n = in.nextInt();
m = in.nextInt();
double[][] sc = new double[55][55];
double[] avi_stu = new double[55];
double[] avi_sc = new double[55];
Arrays.fill( avi_stu, 0.0 );
Arrays.fill( avi_sc, 0.0 );
for( int i = 1; i <= n; ++i )
{
for( int j = 1; j <= m; ++j )
{
sc[i][j] = in.nextDouble();
avi_stu[i] += sc[i][j];
avi_sc[j] += sc[i][j];
}
avi_stu[i] /= m;
}
for( int i = 1; i <= m; ++i )
avi_sc[i] /= n;
for( int i = 1; i <= n; ++i )
{
boolean OK = true;
for( int j = 1; j <= m; ++j )
{
if( sc[i][j] < avi_sc[j] )
{
OK = false;
break;
}
}
if( OK )
cnt++;
}
for( int i = 1; i <= n; ++i )
{
if( i == n )
System.out.println( f.format(avi_stu[i]) );
else
System.out.print( f.format(avi_stu[i]) + " ");
}
for( int i = 1; i <= m; ++i )
{
if( i == m )
System.out.println( f.format(avi_sc[i]));
else
System.out.print( f.format(avi_sc[i]) + " " );
}
System.out.println( cnt );
System.out.println( );
}
}
}
wa是因为四舍五入时候的控制问题,详见 http://blog.youkuaiyun.com/alanzyy/article/details/8465098