码迷,mamicode.com
首页 > 其他好文 > 详细

Codeforces Round #297 (Div. 2)C. Ilya and Sticks

时间:2015-05-31 09:11:00      阅读:126      评论:0      收藏:0      [点我收藏+]

标签:

题意:给你n 个木头的长度   ,  问你组成矩形的最大总面积为多少,  且木头长度L   可以当作L-1 来使用。

题解:很显然   组成矩形要保证总面积最大   只有大的和大的边组成才能保证面积最大,并且如果当前大的为偶数条那么不需要变成-1  否则变成减1   从头到尾扫一遍  没了

代码:

#include<stdio.h>
#include<iostream>
#include<algorithm>
using namespace std; 
__int64 value[1000005]; 
int main()
{
    int n;
    while(scanf("%d", &n) != EOF)
    {
        for(int i = 0; i < n; i++)
        scanf("%I64d", &value[i]);    
        sort(value, value + n);
        __int64 w = 0, sum = 0; 
        int i = n-1; 
        while(i >= 0)
        {
            //printf("%d\n", i); 
            if(value[i] == value[i-1]+1 || value[i] == value[i-1])
            { 
               if(w == 0)
               {
                  w = value[i-1];     
               }            
               else 
               {
               //   printf("%I64d %I64d\n", w, value[i-1]); 
                  sum += (w * value[i-1]);   
                  w = 0;  
               } 
               i -= 2; 
              // printf("%I64d\n", w); 
            }        
            else i -= 1; 
        }            
        printf("%I64d\n", sum); 
    }    
} 


Codeforces Round #297 (Div. 2)C. Ilya and Sticks

标签:

原文地址:http://blog.csdn.net/q651111937/article/details/46284909

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!