p2688.cpp
来自「高手写的所有acm例程 在acm.zju.edu.cn 上的题目的例程」· C++ 代码 · 共 60 行
CPP
60 行
#include <stdio.h>
#include <algorithm>
#define MAXN 100010
using namespace std;
int N;
struct TSchool {
double s [5];
void init () { for ( int i = 0;i < 5; i ++ ) scanf ( "%lf" , &s [i] ); }
};
int Pow [5];
double Sum [MAXN];
bool init ();
TSchool School [MAXN];
void solve ();
main ()
{
while ( init () ) {
solve ();
}
}
void solve ()
{
if ( N == 1 ) {
printf ( "0.00\n" );
return;
}
double Ans = 0 , Min , Max;
for ( int i = 0; i < 5; i ++ ) Pow [i] = 1 << i;
for ( int i = 0; i < ( 1 << 5 ); i ++ ) {
fill_n ( Sum , N , 0 );
for ( int j = 0; j < N; j ++ )
for ( int k = 0; k < 5; k ++ )
Sum [j] += ( i & Pow [k] ) ? School [j].s [k] : - School [j].s [k];
Min = 1e20 , Max = -1e20;
for ( int j = 0; j < N; j ++ ) {
if ( Sum [j] > Max ) Max = Sum [j];
if ( Sum [j] < Min ) Min = Sum [j];
}
if ( Max - Min > Ans ) Ans = Max - Min;
}
printf ( "%.2lf\n" , Ans + 1e-8 );
}
bool init ()
{
scanf ( "%d" , &N );
if( N == 0 ) return false;
for ( int i = 0; i < N; i ++ ) School [i].init ();
return true;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?