hust 1170

题目描述

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.

输入

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.

输出

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.

样例输入

10 25 8 1109
10 25 8 1045
8000 30 12 959879400

样例输出

2
10
50

这个题目个人认为第二个样例是有问题的,这个题在hdu上也有,不过在hdu上long long是不通过的,所以个人觉得hdu这样一个大平台,应该多兼容一下,要不会影响很多人的发挥,就像这次百度之星一样,有很多人就死在long long和__int64的手里
#include<map>
#include<set>
#include<stack>
#include<queue>
#include<cmath>
#include<vector>
#include<cstdio>
#include<string>
#include<cstring>
#include<cstdlib>
#include<iostream>
#include<algorithm>
#define  inf 0x0f0f0f0f

using namespace std;

int main()
{
    //freopen("in.txt","r",stdin);
    int sum,n,w,d,ans;
    while(scanf("%d%d%d%d",&n,&w,&d,&sum)!=EOF)
    {
        ans=(((n*(n-1))/2)*w-sum)/d;
        if (ans==0) printf("%d
",n);
        else printf("%d
",ans);
    }
    return 0;
}

作者 chensunrise

 
原文地址:https://www.cnblogs.com/chensunrise/p/3787986.html