⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dia.cpp

📁 给定n 个整数a ,a , ,an 1 2 &#61516 组成的序列
💻 CPP
字号:
#include <stdio.h>
#include <stdlib.h>
#define Filein "input.txt"
#define Fileout "output.txt"

float dia( float *e,int n )
{
    int i;
    int j = 1;
    float l = 0, s = 0;
    
    for( i = 1; i <= n; i++ )
       l += e[i];
    
    float min = l;
    for( i = 1; i <= n; i++ )
    {
        s += e[i];
        while( ( 2*s > l ) && ( j<= n) )
        {
            min = min<( 2*s - l ) ? min : ( 2*s - l );
            if ( j == n ) break;
            s -= e[j];
            j++;
        }
        
        min = min < ( l - 2*s ) ? min : ( l - 2*s );
        if ( min == 0 ) break;
    }
    
    return ( l - min ) / 2;
}



void main( void )
{
    FILE *Fin,*Fout;
    int i, n;
    float *e;
    
    if ( ( Fin = fopen( Filein, "r" ) )==NULL ) 
		exit( 0 );

    fscanf( Fin, "%d\n", &n );

	if ( n <= 2 ) exit( 0 );
    
    e = new float[ n + 1 ];
    
    for( i = 1; i <= n; i++ )
       fscanf( Fin, "%f ", &e[i] );
    fclose( Fin );  		

    
    if ( (Fout = fopen( Fileout,"w" ))==NULL ) 
		exit(0);

    float d = dia( e, n );
    fprintf( Fout,"%0.0f\n", d );
    
    fclose( Fout );

    delete e;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -