www.ecosway.com-- Problem A

                                                                                                                      Problem A
                                                                     Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
                                                                                     Total Submission(s): 352 Accepted Submission(s): 63
Problem Description
Li Lei has many pearls of N different color. The number of each color is limited. Han Mei is Li Lei’s girl friend.
Since Han Mei’s birthday is coming, Li Lei wants to give Han Mei his present for her birthday. Finally, Li Lei decides to make a chain for his lovely girl friend with his beautiful pearls. He wants to make the chain more beautiful, so the number of the continuous pearls with same color is limited.
Now, Li Lei wants to know how long his chain will be. He will always make the chain as long as possible. Pay attention that the shape of a chain is a line but not a circle here.
Input
The first line is an integer N. It means that Li Lei has many pearls of N different color.
The next line contains N integers A(0),A(1)……A(N-1). It means that Li Lei has A(i) pearls of the i-th color.
The third line contains N integers B(0),B(1)……B(N-1). It means that in the chain, there will be no more than B(i) continuous pearls of the i-th color.
You can assume that A(i) is not smaller than B(i).
All integers in the input is positive and no larger than 100000.
Output
There is one integer in a line for each test case, representing the length of the chain.
SampleInput
3
1 1 100
1 1 1
3
1 1 100
1 1 2
SampleOutput
5
8

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

题意:

三组数据

第一行 几个不同的珍珠

第二行 不同珍珠的个数

第三行 同一种珍珠对应能相连的最大个数

求最大能连几个珍珠

思路:先按照数目从小到大进行排序 前n-1个一定放完 然后最后一个不同的珍珠在进行判断是否放入

代码:

 

#include<iostream>
#include<cstring>
#include<algorithm>
#include<cstdio>
using namespace std;

const int INF=1000005;

struct Zhenzhu
{
	
	__int64 num;
	__int64 zhi;
};

Zhenzhu zhenzhu[INF];

bool cmp(Zhenzhu x,Zhenzhu y)
{
	return x.num<y.num;
}

int main()
{
	int n;
	while(cin>>n)
	{
		for(int i=0;i<n;i++)
		{
			scanf("%I64d",&zhenzhu[i].num);
		}		
		for(int i=0;i<n;i++)
		{
			scanf("%I64d",&zhenzhu[i].zhi);
		}
		sort(zhenzhu,zhenzhu+n,cmp);
		__int64 num=n-1;
		__int64 total=0;
		for(int i=0;i<num;i++)
		{
			total+=zhenzhu[i].num;
		}
		
		if((total+1)*zhenzhu[num].zhi>=zhenzhu[num].num)
		{
			total+=zhenzhu[num].num;
		}
		
        else 
        {
			total+=(total+1)*zhenzhu[num].zhi;
        }
		cout<<total<<endl;
	}
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值
>