鉴于问题的数量为 ,并将正确答案标记为和错误答案的标记。一个人可以尝试在考试中解决问题并获得标记答案是否正确,或如果答案错误,请标记,或无人看管问题并获得分数。任务是找出一个人可以在考试中获得的所有不同可能分数的数量。
例子:
Input: n = 2, p = 1, q = -1
Output: 5
The different possible marks are: -2, -1, 0, 1, 2
Input: n = 4, p = 2, q = -1
Output: 12
方法:
迭代所有可能正确解决和未解决的问题。将分数存储在包含不同元素的集合中,记住存在正数的错误解决问题。
下面是上述方法的实现:
C++
// CPP program to find the count of
// all the different possible marks
// that one can score in the examination
#include
using namespace std;
// Function to return
// the count of distinct scores
int scores(int n, int p, int q)
{
// Set to store distinct values
set hset;
// iterate through all
// possible pairs of (p, q)
for (int i = 0; i <= n; i++)
{
for (int j = 0; j <= n; j++)
{
int correct = i;
int not_solved = j;
int incorrect = n - i - j;
// if there are positive number
// of incorrectly solved problems
if (incorrect >= 0)
hset.insert(p * correct
+ q * incorrect);
else
break;
}
}
// return the size of the set
// containing distinct elements
return hset.size();
}
// Driver code
int main()
{
// Get the number of questions
int n = 4;
// Get the marks for correct answer
int p = 2;
// Get the marks for incorrect answer
int q = -1;
// Get the count and print it
cout << (scores(n, p, q));
}
// This code is contributed by
// Surendra_Gangwar
Java
// Java program to find the count of
// all the different possible marks
// that one can score in the examination
import java.util.*;
class GFG {
// Function to return
// the count of distinct scores
static int scores(int n, int p, int q)
{
// Set to store distinct values
HashSet
hset = new HashSet();
// iterate through all
// possible pairs of (p, q)
for (int i = 0; i <= n; i++) {
for (int j = 0; j <= n; j++) {
int correct = i;
int not_solved = j;
int incorrect = n - i - j;
// if there are positive number
// of incorrectly solved problems
if (incorrect >= 0)
hset.add(p * correct
+ q * incorrect);
else
break;
}
}
// return the size of the set
// containing distinct elements
return hset.size();
}
// Driver code
public static void main(String[] args)
{
// Get the number of questions
int n = 4;
// Get the marks for correct answer
int p = 2;
// Get the marks for incorrect answer
int q = -1;
// Get the count and print it
System.out.println(scores(n, p, q));
}
}
Python3
# Python3 program to find the count of
# all the different possible marks
# that one can score in the examination
# Function to return the count of
# distinct scores
def scores(n, p, q):
# Set to store distinct values
hset = set()
# Iterate through all possible
# pairs of (p, q)
for i in range(0, n + 1):
for j in range(0, n + 1):
correct = i
not_solved = j
incorrect = n - i - j
# If there are positive number
# of incorrectly solved problems
if incorrect >= 0:
hset.add(p * correct +
q * incorrect)
else:
break
# return the size of the set
# containing distinct elements
return len(hset)
# Driver code
if __name__ == "__main__":
# Get the number of questions
n = 4
# Get the marks for correct answer
p = 2
# Get the marks for incorrect answer
q = -1
# Get the count and print it
print(scores(n, p, q))
# This code is contributed by Rituraj Jain
C#
// C# program to find the count of
// all the different possible marks
// that one can score in the examination
using System;
using System.Collections.Generic;
class GFG
{
// Function to return
// the count of distinct scores
static int scores(int n, int p, int q)
{
// Set to store distinct values
HashSet
hset = new HashSet();
// iterate through all
// possible pairs of (p, q)
for (int i = 0; i <= n; i++)
{
for (int j = 0; j <= n; j++)
{
int correct = i;
int not_solved = j;
int incorrect = n - i - j;
// if there are positive number
// of incorrectly solved problems
if (incorrect >= 0)
hset.Add(p * correct
+ q * incorrect);
else
break;
}
}
// return the size of the set
// containing distinct elements
return hset.Count;
}
// Driver code
public static void Main()
{
// Get the number of questions
int n = 4;
// Get the marks for correct answer
int p = 2;
// Get the marks for incorrect answer
int q = -1;
// Get the count and print it
Console.WriteLine(scores(n, p, q));
}
}
/* This code contributed by PrinciRaj1992 */
Javascript
输出:
12
如果您希望与专家一起参加现场课程,请参阅DSA 现场工作专业课程和学生竞争性编程现场课程。