【topcoder SRM 702 DIV 2 250】TestTaking
Problem Statement
Recently, Alice had to take a test. The test consisted of a sequence of true/false questions. Alice was completely unprepared for the test, so she just guessed each answer.
You are given the following inputs:
an int questions: the number of questions on the test.
an int guessed: the number of questions for which Alice guessed that the answer is “true”.
an int actual: the actual number of questions for which the answer is “true”.
In the test, each correct answer was worth 1 point and each incorrect answer was worth 0 points. Compute the largest possible number of points Alice could have received.
Definition
Class:
TestTaking
Method:
findMax
Parameters:
int, int, int
Returns:
int
Method signature:
int findMax(int questions, int guessed, int actual)
(be sure your method is public)
Limits
Time limit (s):
2.000
Memory limit (MB):
256
Stack limit (MB):
256
Constraints
questions will be between 1 and 50, inclusive.
guessed, actual will be between 0 and questions, inclusive.
Examples
0)
3
1
2
Returns: 2
The test consisted of 3 statements.
Alice guessed that 1 of them is true.
Actually, there were 2 true statements on the test.
There are multiple possible outcomes of the test.
For example, it is possible that Alice wrote down the sequence of answers (false,true,false), but the correct sequence of answers is (true,false,true). In this case Alice would have received 0 points.
One possible best scenario for Alice looks as follows: Alice guessed that the answers are (false,false,true), and the correct answers are (true,false,true). In this scenario Alice would have received 0+1+1 = 2 points.
1)
3
2
1
Returns: 2
2)
5
5
0
Returns: 0
Alice guessed five times “true”, but all five correct answers were “false”. Thus, Alice certainly received 0 points.
3)
10
8
8
Returns: 10
4)
7
0
2
Returns: 5
This problem statement is the exclusive and proprietary property of TopCoder, Inc. Any unauthorized use or reproduction of this information without the prior written consent of TopCoder, Inc. is strictly prohibited. (c)2003, TopCoder, Inc. All rights reserved.
【题目链接】:
【题解】
让你猜这个人最多能得多少分.
其实答案就是min(questions-guess,question-actual)+min(guess,actual);
就是尽量让这个人的答案和结果一样。
【完整代码】
#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <set>
#include <map>
#include <iostream>
#include <algorithm>
#include <cstring>
#include <queue>
#include <vector>
#include <stack>
#include <string>
using namespace std;
#define lson l,m,rt<<1
#define rson m+1,r,rt<<1|1
#define LL long long
#define rep1(i,a,b) for (int i = a;i <= b;i++)
#define rep2(i,a,b) for (int i = a;i >= b;i--)
#define mp make_pair
#define pb push_back
#define fi first
#define se second
typedef pair<int,int> pii;
typedef pair<LL,LL> pll;
//const int MAXN = x;
const int dx[5] = {0,1,-1,0,0};
const int dy[5] = {0,0,0,-1,1};
const double pi = acos(-1.0);
class TestTaking
{
public:
int findMax(int questions, int guessed, int actual)
{
int a1 = min(guessed,actual);
int a2 = min(questions-guessed,questions-actual);
return a1+a2;
}
};
//提交时以下部分删去.
int main()
{
//freopen("F:\\rush.txt","r",stdin);
TestTaking A;
int a,b,c;
cin >> a>>b>>c;
cout <<A. findMax(a,b,c);
return 0;
}
相关文章
- 回顾div+css几种经典布局
- 【CSS】CSS 选择器 ① ( CSS 选择器作用 | CSS 选择器分类 | 标签选择器 | 类选择器 | div 与 span 标签 | 多类名选择器 )
- 如何在一个div中使其子div居中的5种方式详解编程语言
- 利用oracle中DIV函数实现数值运算(oracle div函数)
- 12个div逐个显示效果
- div做细线表格,很强悍
- 常用的DIV+CSS的基本框架结构但不推荐都放一个div里
- div总是被select遮挡的解决方法
- javascript可以拖动的DIV(二)
- 关于flash遮盖div浮动层的解决方法
- 分别用marquee和div+js实现首尾相连循环滚动效果,仅3行代码
- javascript实现节点(div)名称编辑
- php正则匹配html中带class的div并选取其中内容的方法