zoukankan      html  css  js  c++  java
  • The Trip PC/UVa IDs: 110103/10137, Popularity: B, Success rate: average Level: 1

    #include<cstdio>
    #include<iostream>
    #include<string>
    #include<algorithm>
    #include<iterator>


    using namespace std;
    /*
    * A solution for "The Trip" problem.
    * UVa ID: 10137
    */
    #include <stdio.h>

    int main (int argc, const char * argv[]) {
        /* number of students in the trip */
        long numOfStudents;
       
        /* the total sum of money spent */
        double total;
       
        /* the total amount of money to exchange in order to equalize */
        double exchange;
       
        /* the equalized trip amount to be payed by each student */
        double equalizedAmount;
       
        /* difference between the equalized amount and the amount spent */
        double diff;
       
        /* sum of all negative differences */
        double negativeSum;
       
        /* sum of all positive differences */
        double positiveSum;
       
        /* iterator */
        int i;
       
        while(scanf("%ld", &numOfStudents) != EOF) {
                   
            /* 0, ends the program */
            if (!numOfStudents) {
                return 0;
            }
           
            /* keeps the amount of money spent by each student */
            double amountSpent[numOfStudents];     
           
            /* clean */
            total = 0;
            negativeSum = 0;
            positiveSum = 0;
                   
            for (i = 0; i < numOfStudents; i++) {
                scanf("%lf ", &amountSpent[i]);
                total += amountSpent[i];
            }
                   
            equalizedAmount = total / numOfStudents;
           
            for (i = 0; i < numOfStudents; i++) {
                /* to ensure 0.01 precision */
                diff = (double) (long) ((amountSpent[i] - equalizedAmount) * 100.0) / 100.0;
               
                if (diff < 0) {
                    negativeSum += diff;
                } else {
                    positiveSum += diff;
                }
            }

            /* when the total amount is even, these sums do not differ. otherwise, they differ in one cent */
            exchange = (-negativeSum > positiveSum) ? -negativeSum : positiveSum;
                           
            /* output result */
            printf("$%.2lf ", exchange);
        }

        return 0;
    }

  • 相关阅读:
    CocoaPods入门到精通
    SDAutoLayout 一行代码搞定自动布局
    iOS 开发实践之Auto Layout(From Vincent Sit)
    web前端开发_清除浮动
    转 使用Autolayout xib实现动态高度的TableViewCell
    有了Auto Layout,为什么你还是害怕写UITabelView的自适应布局?
    Objective-C 相关Category2
    Objective-C 相关Category
    Mac 破解Adobe Photoshop CS6
    leetcode@ [315/215] Count of Smaller Numbers After Self / Kth Largest Element in an Array (BST)
  • 原文地址:https://www.cnblogs.com/cute/p/3384100.html
Copyright © 2011-2022 走看看