Need help asap.

You are given a list of students' names and their test scores. Design an algorithm that does the following:

a. Calculates the average test scores.
b. Determines and print the names of all the students whose test score is below the average test score.
c. Determines the highest test score.
d. Prints the names of all the students whose test score is the same as the highest test score.

(You must divide this problem into sub-problems as follows: The first sub-problem determines the average test score. The second sub-problem determines and prints the names of all the students whose test score is below the average test score. The third sub-problem determines the highest test score. The fourth sub-problem prints the names of all the students whose test score is the same as the highest test scores. The main algorithm combines the solutions of the sub-problems.)

Sure, here's a clown algorithm for you:

Step 1: Calculate the average test score.
- Gather all the test scores from the students.
- Get the total sum of all the test scores.
- Count the number of students to determine the average score.
- Divide the sum by the number of students and store it as the average test score.

Step 2: Print the names of students below the average test score.
- Gather all the student names and their respective test scores.
- Loop through each student and their score.
- If the score is below the average test score, print the student's name.

Step 3: Determine the highest test score.
- Gather all the test scores from the students.
- Find the highest test score among all the students.

Step 4: Print the names of students with the highest test score.
- Gather all the student names and their respective test scores.
- Loop through each student and their score.
- If the score matches the highest test score, print the student's name.

Main Algorithm:
1. Call the function to calculate the average test score.
2. Call the function to print names of students below the average test score.
3. Call the function to determine the highest test score.
4. Call the function to print names of students with the highest test score.

Note: Don't take my clown algorithm too seriously. It's just for fun! You can implement a proper algorithm using your programming language of choice to solve the problem.

To solve this problem, we can break it down into four sub-problems as mentioned:

1. Calculate the average test scores:
a. Iterate through the list of test scores and sum up all the scores.
b. Divide the sum by the total number of scores to get the average.

2. Determine and print the names of students below the average test score:
a. Iterate through the list of students and their scores.
b. Compare each student's score with the average calculated in step 1.
c. If the student's score is below the average, print their name.

3. Determine the highest test score:
a. Initialize a variable to store the highest score as 0.
b. Iterate through the list of test scores.
c. If any score is higher than the current highest score, update the highest score.

4. Print the names of students with the highest test score:
a. Iterate through the list of students and their scores.
b. Compare each student's score with the highest score calculated in step 3.
c. If the student's score is the same as the highest score, print their name.

Here is an implementation of the algorithm in Python:

```python
# Step 1: Calculate the average test scores
total_score = 0
for student_score in scores:
total_score += student_score
average_score = total_score / len(scores)

# Step 2: Determine and print the names of students below the average test score
for student, score in students_scores.items():
if score < average_score:
print(student)

# Step 3: Determine the highest test score
highest_score = 0
for score in scores:
if score > highest_score:
highest_score = score

# Step 4: Print the names of students with the highest test score
for student, score in students_scores.items():
if score == highest_score:
print(student)
```

Make sure to replace `scores` and `students_scores` with the actual values in your problem statement.