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

HDU2401 Baskets of Gold Coins【水题】【推理】

时间:2015-01-31 14:43:40      阅读:210      评论:0      收藏:0      [点我收藏+]

标签:

Baskets of Gold Coins

Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 1648    Accepted Submission(s): 966

Problem Description
You are given N baskets of gold coins. The baskets are numbered from 1 to N. In all except one of the baskets, each gold coin weighs w grams. In the one exceptional basket, each gold coin weighs w-d grams. A wizard appears on the scene and takes 1 coin from Basket 1, 2 coins from Basket 2, and so on, up to and including N-1 coins from Basket N-1. He does not take any coins from Basket N. He weighs the selected coins and concludes which of the N baskets contains the lighter coins. Your mission is to emulate the wizard‘s computation. 

Input
The input file will consist of one or more lines; each line will contain data for one instance of the problem. More specifically, each line will contain four positive integers, separated by one blank space. The first three integers are, respectively, the numbers N, w, and d, as described above. The fourth integer is the result of weighing the selected coins. 

N will be at least 2 and not more than 8000. The value of w will be at most 30. The value of d will be less than w. 

Output
For each instance of the problem, your program will produce one line of output, consisting of one positive integer: the number of the basket that contains lighter coins than the other baskets. 

Sample Input
10 25 8 1109
10 25 8 1045
8000 30 12 959879400
 
Sample Output
2
10
50
 
Source

ACM/ICPC 2008 Warmup(2)——测试帐号(杭州)


题目大意:有N个篮子,编号为1~N,篮子理由很多金币,只有一个篮子中每个金币中w-d,

其他篮子中每个金币都重w。现在从第1个篮子里拿1个金币,从第2个篮子里拿2个金币,…,

一直到到第N-1个篮子里拿N-1个金币。第N个篮子不拿。给出这些金币的全部重量和all,问:

第几个篮子里的金币是轻的,求出轻金币的个数。

思路:数学题,1~N个篮子里金币应有的总重量为:(N-1)*N/2*w,减去这些金币的全部重量

和all,得到总的轻金币比普通金币差的重量,每个轻金币和普通金币差的重量为d,两者相除,

得出轻金币的个数。


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

int main()
{
    int N,w,d,all;
    while(cin >> N >> w >> d >> all)
    {
        if((N-1)*N/2*w - all == 0)
            cout << N << endl;
        else
            cout << ((N-1)*N/2*w - all)/d << endl;
    }

    return 0;
}


HDU2401 Baskets of Gold Coins【水题】【推理】

标签:

原文地址:http://blog.csdn.net/lianai911/article/details/43340369

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