【CSU-1111】解题报告(水题)

原始题目

1111: 三家人

  • Time Limit: 1 Sec
  • Memory Limit: 128 Mb
  • Submitted: 4053
  • Solved: 1606

Description

有三户人家共拥有一座花园,每户人家的太太均需帮忙整理花园。A 太太工作了5 天,B 太太则工作了4 天,才将花园整理完毕。C 太太因为正身怀六甲无法加入她们的行列,便出了90元。请问这笔钱如何分给A、B 二位太太较为恰当?A 应得多少元?$ 5 \times \frac {90} {5+4}= 50 $?如果这么想你就上当了!正确答案是60 元。如果没想通的话再想想吧。

下面回答一个一般性的问题:假定A 太太工作了x 天,B 太太工作了y 天,C 太太出了90元,则A 太太应得多少元?输入保证二位太太均应得到非负整数元钱。三个太太工作效率相同。

友情提示:本题有个小小的陷阱哦。如果答案错的话,认真检查一下代码吧。

Input

输入第一行为数据组数$T (T ≤ 20) $。每组数据仅一行,包含三个整数 $x, y, z (1 ≤ x, y ≤10,1 ≤ z ≤1000) $。

Output

对于每组数据,输出一个整数,即A 太太应得的金额(单位:元)。

Sample Input

2
5 4 90
8 4 123

Sample Output

60
123

Hint

如果使用浮点数,请小心误差,输出时尽量用四舍五入。

Source

湖南省第八届大学生计算机程序设计竞赛

题目大意

如题

解题思路

考虑每个人都应该完成$ \frac {1}{3} $ 的工作量。再按多余完成量分配钱,注意考虑工作量不够自己应该完成的情况。

解题代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include <cstdio>
#include <cstring>
#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <set>
#include <string>
#include <cstring>
#include <stack>
#define rep(i,a,n) for(int i=a;i<n;++i)
#define per(i,a,n) for(int i=n-1;i>=a;--i)
using namespace std;
const int maxn=1e5+5;
const int maxl=26;

int t,n;
double x,y,z;

int main(){
ios::sync_with_stdio(false);
cin>>t;
while(t--){
cin>>x>>y>>z;
double ans=(x+y)/3.0;
if(ans>(double)x) cout<<0<<endl;
else if(ans>(double)y) cout<<fixed<<setprecision(0)<<z<<endl;
else {
x-=ans;
y-=ans;
cout<<fixed<<setprecision(0)<<z*x/(x+y)<<endl;
}
}
}

收获与反思

水题