+ Time Limit: ۱ second
+ Memory Limit: 256 megabytes
----------
In this problem, you are given two integers such as $a$ and $b$. Write a program that receives the values of $a$ and $b$ and prints $a + b$.
# Input
In the only line of the input, two integers $a$ and $b$, separated by a space, are given.
$$1 \leq a, b \leq 100$$
# Output
In the only line of the output, print the value of $a + b$.
# Examples
## Sample Input 1
```
3 5
```
## Sample Output 1
```
8
```
## Sample Input 2
```
1 1
```
## Sample Output 2
```
2
```
<details class="red">
<summary> **Common Mistakes**</summary>
<details class="red">
<summary>**Checking the input constraints**</summary>
There is no need to check whether the given input satisfies the mentioned conditions or not. The constraints are only provided to inform you about the test cases and the limitations of the problem, and they will always be satisfied in the given inputs. Therefore, you do not need to write something like:
```python
if 1 <= n <= 100:
# answer of problem
else:
# print('invalid input')
```
</details>
<details class="red">
<summary>
**Taking all inputs first and printing all outputs at the end**
</summary>
You can print outputs while receiving inputs. Therefore, there is no need to first receive all inputs and then print all outputs. Especially for problems where you need to answer multiple queries, you can consider the input and output sections completely independent and be sure that they will not interfere with each other.
</details>
<details class="red">
<summary>
**Printing extra messages while receiving input**
</summary>
Please avoid printing extra messages such as `please enter a number` when receiving input. For example, in Python, you should not write:
```python
input('please enter:')
```
</details>
<details class="red">
<summary>
**Using multiple files**
</summary>
For languages such as Java, you should not include a package address at the top of your code. For example, you should not write:
```java
package ir.quera.contest;
```
</details>
<details class="red">
<summary>
**Using multiple `Scanner` objects to receive input**
</summary>
In Java, you should define only one object of type `Scanner` and use it to receive all inputs.
</details>
</details>
Adding Two Numbers (Educational)
| **You can download the initial exercise file from [link](https://quera.org/contest/assignments/103149/download_problem_initial_project/356096/).** |
| ------------------------------------------------------------------------------ |
Welcome to "The Krabby Real Estate"! Mr. Krabs, the famous restaurant owner, has recently realized that the Krabby Patty formula is no longer the only way to get rich in the city of "Bikini Bottom". He has figured out that the real money lies in the volatile real estate market!
But a massive crisis has struck the company! Plankton, using his computer wife's AI, is pre-purchasing the city's best houses with highly precise and engineered prices. Meanwhile, Mr. Krabs discovered that Squidward (who until yesterday was responsible for pricing and appraising the houses) was setting the prices entirely by chance, based on his mood, and just by looking at the exterior of the houses! Mr. Krabs fired Squidward out of pure anger and now senses the danger of his new empire going bankrupt. Now, Mr. Krabs wants one thing from you: build a system that predicts the exact price of houses in Bikini Bottom before Plankton gets his hands on them.
SpongeBob's team (who now collects data across the city instead of flipping burgers) has extracted a dataset of sold houses in various neighborhoods and provided it to you. Your task is to design this model.
The data collection team has provided the extracted information in the form of two files (train and test). Each row of this dataset represents the specifications of a house. The details of the columns in this dataset are as follows:
| **Column Name** | **Description** |
| --------------------------- | ---------------------------------------------------------------- |
| **lat** | House latitude (map coordinates) |
| **long** | House longitude (map coordinates) |
| **area** | House area (in square meters) |
| **age** | Building age (years) |
| **total_floors** | Total number of building floors |
| **floor_number** | Floor number where the unit is located |
| **rooms** | Number of bedrooms |
| **document_type** | Property deed type (Private, Endowment, Unregistered Deed, etc.) |
| **cooling_type** | Cooling system (Split, Chiller, Water Cooler, etc.) |
| **monthly_levy** | Monthly building maintenance fee |
| **has_master_bedroom** | Does the house have a master bedroom? (1: Yes, 0: No) |
| **parking_type** | Parking status and type (Covered, Courtyard, etc.) |
| **neighbor_noise_level** | Neighbors' noise level (Low, Average, High) |
| **distance_to_hospital_km** | Distance to the nearest hospital (kilometers) |
| **has_smart_home** | Equipped with a smart home system (1: Yes, 0: No) |
| **water_pressure** | Building water pressure status |
| **exterior_style** | Building exterior style (Roman, Modern, Classic) |
| **fiber_internet** | Access to fiber optic internet (1: Yes, 0: No) |
| **manager_present** | Presence of a building manager or lobbyman (1: Yes, 0: No) |
| **window_type** | Type of windows (Double-glazed, Single-glazed, etc.) |
| **price** | Final sale price of the house |
### **Output**
To evaluate your program, you must predict the prices of the houses in `test.csv`. Your output should be a text or CSV file containing only **one column** named `price`. Each row in this column must exactly represent the predicted price for the corresponding row in the input data.
Code snippet
```
price
2450000
1860500
3400000
985000
...
```
### **Evaluation Method**
The following formula is used to evaluate your system:
$$Score = \max\left(0, 100 \times \left(1 - \frac{1 - R^2 Score}{0.04}\right)\right)$$
The Krabby Real Estate Formula
| **You can download the initial exercise file from [link](https://quera.org/contest/assignments/103149/download_problem_initial_project/356097/).** |
| ------------------------------------------------------------------------------ |
With the 2026 World Cup approaching, Kylian, deeply angered by the defeat in the previous round, has taken your family hostage. He has demanded that you provide him with all available analytical information to understand his opponents and help him win the cup this time. To save your family, you must quickly fulfill Kylian's demands.
Your only tools are four raw datasets. From millions of records, you must extract **12 analytical reports**; from introducing the best penalty takers and young talents to analyzing winning streaks, giant killers, and the impact of decisive goals. If you complete the mission successfully, Kylian will release your family members.

### Datasets Structure
The analysis team has provided you with the extracted information in the form of 4 separate files. The details of these datasets are as follows:
| **File Name** | **General Description** |
| ------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------- |
| `results.csv` | Includes the history of all international football matches (date, tournament name, home/away team, goals, host city and country). |
| `goalscorers.csv` | Includes details of goals scored in matches (scorer name, minute of goal, whether it was a penalty or not, scoring team). |
| `elo_ratings_wc2026.csv` | Includes the history of national teams' Elo ratings, global Rank, and their point changes across various time snapshots. |
| `FC26_20250921.csv` | Includes comprehensive player information in the FC26 game (name, nationality, club, age, market value, wage, potential, and Overall rating). |
## How to Submit Your Answer
To answer this question, first open the notebook file provided in the initial files, and then complete the steps as requested. Finally, after running the result generator cell (the last cell of the notebook file), submit the generated `result.zip` file.
Please note that you must save the changes made in the notebook using the `ctrl+s` shortcut before running the result generator cell; otherwise, your **score** will be changed to **zero** at the end of the competition.
Also, if you are using Colab to run this notebook file, download the latest version of your notebook and place it inside the submission file before submitting the `result.zip` file.
Kylian the Dictator
| You can download the initial exercise file from [link](https://quera.org/contest/assignments/103149/download_problem_initial_project/356093/). |
| --- |
Welcome to the Data Analysis and Strategy Department of **"Rockstar"**! The creator of one of the biggest and most profitable games in history: **Grand Theft Auto V**.
More than a decade after the game's release, our economy and players' behavior have undergone profound changes. Now, **Rockstar** needs to predict its sales and profits to maximize sales of its new game version, but it has encountered a serious problem and has hired you to solve these issues.
Due to a flaw in the legacy servers, the data related to **gross revenue** in 60 percent of the records from past years has been deleted. Worse yet, for the coming months, we don't know what percentage of players will purchase the game **digitally** and what percentage **physically** in order to adjust distribution and marketing budgets.
You have joined the team to solve this crisis. The marketing manager wants a comprehensive system from you: a system that can examine past behavior to simultaneously predict which **sales channel (Physical or Digital)** a sales record belongs to and what the **exact revenue** generated from it will be.

The data engineering team has provided you with the extracted information in the form of two files, `train.csv` and `test.csv`. Note that in the training file, 60% of the revenue values are missing, and in the test file, both target columns have been completely removed for you to predict them. The details of the columns in this dataset are as follows:
| **Column Name** | **Description** |
| --- | --- |
| `transaction_id` | Unique identifier for each record in the dataset |
| `year` | Calendar year of the record |
| `month` | Calendar month of the record (1 to 12) |
| `quarter` | Financial quarter derived from the month (1 to 4) |
| `country` | Name of the country where the sale was made |
| `iso3_code` | Three-letter ISO code (ISO 3166-1 alpha-3) for the country |
| `region` | Continent or geographical region of the country |
| `platform` | Gaming platform (e.g., PS3, PS4, PC, Xbox Series X|S) |
| `game_edition` | Purchased edition of the game (Standard, Premium, Legacy, etc.) |
| `units_sold` | Number of copies sold in that month/country/platform |
| `new_customers` | Number of buyers who purchased for the first time in that period |
| `returning_customers` | Number of returning buyers (those who have purchased before) |
| `estimated_active_players` | Estimated number of unique active players |
| `peak_concurrent_players` | Highest number of concurrent players recorded in that month |
| `online_players` | Number of active players in any of the online sections |
| `story_mode_players` | Number of players engaged with the story mode content (single-player) |
| `gta_online_players` | Number of active players specifically in the GTA Online section |
| `average_playtime_hours` | Average playtime hours per active player in that month |
| `average_session_length_minutes` | Average length of each gaming session in minutes |
| `holiday_season` | Was the sale during the holiday season (November, December, January)? (0 or 1) |
| `major_sale_event` | Name of the special sale event active in that month (if any) |
| `marketing_campaign` | Was a marketing campaign active during that period? (0 or 1) |
| `customer_rating` | Average rating submitted by users (from 4.2 to 5.0) |
| `review_count` | Number of submitted reviews |
| `refund_rate_percentage` | Percentage of refunded purchases |
| `currency` | Local currency code of the target country |
| `exchange_rate_to_usd` | Local currency to USD exchange rate at the time of sale |
| `internet_penetration_percentage` | Internet penetration percentage in the target country |
| `gaming_market_size` | Estimated relative size of the gaming market in the country |
| `population_millions` | Population of the target country in millions |
| `gdp_per_capita_usd` | GDP per capita of the country in USD (indicating purchasing power) |
| `release_phase` | Platform release life cycle phase (Launch, Growth, Mature, Legacy) |
| `weekend_sales_percentage` | Percentage share of sales on weekends |
| `weekday_sales_percentage` | Percentage share of sales on weekdays |
| `season` | Meteorological season (Winter, Spring, Summer, Autumn) |
| `special_event` | Special event that stimulated sales (e.g., release of a major update) |
| `top_game_category` | Main genre category of the game (Action-Adventure) |
| `platform_generation` | Gaming console generation (e.g., Gen7, Gen8, Gen9, PC) |
| `gross_revenue_usd` | **(First Target Column - Regression):** Gross revenue earned in USD |
| `sales_channel` | **(Second Target Column - Classification):** Sales channel, with values `Physical` or `Digital` |
### **Predictions Output Format**
Your model must make its predictions for all rows present in the test file. In the initial notebook file, code has been provided that saves your model's output in the format of a file named `submission.csv`. This file must include the following three columns:
* `transaction_id`: Transaction ID
* `sales_channel_pred`: Your prediction for the sales channel (`Physical` or `Digital`)
* `revenue_pred`: Your prediction for the revenue amount in USD (a decimal number)
## How to Submit Your Answer
After running the result generator cell (the last cell of the notebook file), submit the generated `result.zip` file. This zip file will automatically include your notebook and the `submission.csv` file.
Please note that you must save the changes made in the notebook using the `ctrl+s` shortcut before running the result generator cell; otherwise, your **score** will be changed to **zero** at the end of the competition.
Also, if you are using Colab to run this notebook file, download the latest version of your notebook and place it inside the submission file before submitting the `result.zip` file.
### **Evaluation Method**
The judging system uses a combination of two metrics, **Log Loss** and **RMSLE**, to evaluate the performance of your model. Since a value of zero in these metrics indicates zero error and a perfect prediction, the judging system calculates the score based on a **descending exponential function of your model's combined error**.
The total score is **100 points**, where the error of each section is considered with specific weights (35% for correctly classifying the sales channel and 65% for predicting the revenue). The formula for calculating the final score is as follows:
$$S = 100 \times e^{-1.3(0.35 \times LogLoss + 0.65 \times RMSLE)}$$
Where in this formula:
%align_left_start%
* **$LogLoss$**: The error of your model's logarithmic loss function for classifying the sales channel.
* **$RMSLE$**: The root mean squared logarithmic error of your model for predicting revenue in USD.
%align_end%
The closer your model's error in both sections gets to zero, the closer the exponent gets to zero, and your final score will approach *100*.
GTA VI
| **You can download the initial exercise file from [link](https://quera.org/contest/assignments/103149/download_problem_initial_project/356098/).** |
| ------------------------------------------------------------------------------ |
Sina is a student and also goes to work at the same time. With the arrival of the cold season and the phenomenon of temperature inversion, he checks the news every morning with stress. Sina is highly hoping that due to Tehran's air pollution, universities and offices will be closed, and his classes and exams will be held virtually so he can stay at home and get to his tasks more easily!

But checking the news is not fast enough, and Sina wants to always be one step ahead. He has decided to use meteorological data to build a powerful AI model to predict the air pollution status in the coming days.
Your mission as a data scientist is to help Sina. Using an hourly dataset containing weather information, you must design a model based on machine learning or time series that can predict the concentration of particulate matter (AQI) as accurately as possible based on these features.
| **Column Name** | **Description** |
| ---------------- | -------------------------------------------------------------------------------- |
| `No` | Unique row identifier (record number) |
| `timestamp` | Time and date of record entry as a text string |
| `AQI` | **(Target Variable):** Concentration of particulate matter less than 2.5 microns |
| `DEWP` | Dew point (Celsius) |
| `TEMP` | Temperature (Celsius) |
| `TEMP_F` | Temperature (Fahrenheit) |
| `PRES` | Air pressure (hPa) |
| `sensor_voltage` | Measurement sensor voltage at the time of recording (millivolts) |
| `cbwd` | Dominant wind direction |
| `Iws` | Cumulated wind speed (meters per second) |
| `Is` | Cumulated hours of snow |
| `Ir` | Cumulated hours of rain |
### Evaluation Metric
The judging system first calculates the Mean Absolute Error (_MAE_) between your predictions and the actual values in the system:
$$MAE = \frac{1}{n} \sum_{i=1}^{n} \vert{}y_i - \hat{y}_i\vert{}$$
\*_Final Score Formula:_\*
Due to the severe fluctuations of the pollution index, your final score on the leaderboard is calculated using a descending exponential function. This score will be a decimal number where the lower your error, the closer it gets to 100:
$$Final\_Score = 100 \times e^{-MAE / 100}$$
> In this formula, the number 100 is a constant coefficient (C). With this evaluation metric:
>
> + If you build a perfect model and $MAE = 0$, your score will be **100**.
> + The larger your error gets, your score will approach zero.
### Predictions Output Format
Your model must make its predictions for all rows present in the test file (`test.csv`). In the initial notebook file, code has been provided that saves your model's output in the format of a file named `submission.csv`. This file must definitely include the following two columns:
\* `No`: Row identifier (exactly the same as the test file)
\* `AQI`: Your prediction for the pollution concentration (AQI)
The table below shows an example of the output file:
| **No** | **AQI** |
| ------ | ------- |
| 35065 | 21.0 |
| 35066 | 63.0 |
| 35067 | 75.0 |
| 35068 | 10.0 |
| 35069 | 99.0 |
### How to Submit Your Answer
After running the result generator cell (the last cell of the notebook file), submit the generated `result.zip` file. This zip file will automatically include your notebook and the `submission.csv` file.
Please note that you must save the changes made in the notebook using the `ctrl+s` shortcut before running the result generator cell; otherwise, your **score** might not be calculated correctly at the end of the competition.
Also, if you are using Google Colab to run this notebook file, download the latest version of your notebook and place it inside the submission file instead of the previous notebook before submitting the `result.zip` file.
The Mystery of Tehran's Air
| **You can download the initial exercise file from [link](https://quera.org/contest/assignments/103149/download_problem_initial_project/356094/).** |
| ------------------------------------------------------------------------------ |
Welcome to the underground world of "Albuquerque"! Walter White has recently realized that having the purest chemical formula is not enough to conquer the market; he has figured out that the real power lies in accurately predicting customer behavior and psychology!
But a massive crisis has struck the empire! The Drug Enforcement Administration (DEA), led by Hank Schrader, is using artificial intelligence algorithms to identify consumption patterns across the city. Meanwhile, Heisenberg discovered that his lawyer, Saul Goodman, was guessing consumer behavior entirely by chance and merely by looking at the appearance and clothes of people in his office waiting room! Heisenberg fired Saul Goodman from the data analysis department out of pure anger and now senses the danger of his empire collapsing.

Now, Heisenberg wants one thing from you: build a system that uses valid psychological tests (NEO-FFI) and demographic information to predict the consumption class of 5 specific products for each individual. He has also collected a dataset of various people and provided it to you.
The extracted information has been provided to you in the form of two files (train and test). Each row of this dataset represents a person's profile. The details of the columns in this dataset are as follows:
| **Column Name** | **Description** |
| --------------------------- | --------------------------------------------------- |
| **ID** | Unique identifier for each person |
| **Age** | Age group of the individual (normalized) |
| **Sex** | Gender of the individual |
| **EducationLevel** | Education level of the individual |
| **Country** | Country of residence |
| **Background** | Ethnicity of the individual |
| **EmotionalStabilityScore** | Neuroticism score from the personality test |
| **SocialEnergyScore** | Extraversion score from the personality test |
| **OpennessScore** | Openness to new experiences score |
| **CooperationScore** | Agreeableness score |
| **SelfDisciplineScore** | Conscientiousness score |
| **ImpulseControlScore** | Degree of impulsive and thoughtless decision-making |
| **NoveltySeekingScore** | Sensation seeking and risk-taking index |
In the training file, in addition to the above columns, there are also 5 Target columns that you must predict for the test data. The values of these 5 columns include the numbers `0`, `1`, and `2`, which indicate the time frame of consumption:
+ **Class 0 (No/Distant Use):** Never consumed.
+ **Class 1 (Near Use):** Consumed in the past year.
+ **Class 2 (Regular Use):** Regular consumption.
These 5 targets are:
`Marijuana`, `LSD`, `Mushroom`, `Psychotropic`, `Ex`
### **Output**
To evaluate your program, you must predict the consumption class (numbers 0, 1, or 2) for the 5 target columns in the `test.csv` data. Your output must be a CSV file containing the `ID` column and the 5 predicted columns.
Code snippet
```
ID,Marijuana,LSD,Mushroom,Psychotropic,Ex
1,0,0,1,0,2
2,2,0,0,1,0
3,1,1,0,0,0
4,0,0,0,2,1
...
```
### **Evaluation Method**
Your model's performance in this problem is measured using the **Macro F1** metric. Since we are dealing with a multi-target classification problem, the judging system first calculates the _Macro F1_ score for each of the 5 targets separately. For your model to earn points in any target, it must be able to surpass the baseline performance threshold (66% accuracy). Scores above this threshold are scaled and form your final score in the range of 0 to 100.
The formula for calculating the final score is as follows:
$$Score = \sum_{i=1}^{5} 20 \times \min\left(1, \max\left(0, \frac{\text{MacroF1}_i - 0.50}{0.50}\right)\right)$$
> **If the model's performance in a target is less than 0.66, it will not receive any points for that section.**
Better Call You
| **You can download the initial exercise file from [link](https://quera.org/contest/assignments/103149/download_problem_initial_project/356095/).** |
| ------------------------------------------------------------------------------ |
In the year 2142, the dark, underground megacity of "Neo-Veridia" is on the brink of a major financial crisis. NeonCorp is the city's largest technology and cybernetics holding, granting "Quantum Credit" (QC) loans to citizens so they can afford neural chips and biological upgrades.
But a disaster has occurred! NeonCorp's legacy AI evaluation system has been hacked by cyber hackers, and now citizens who have no intention of repaying are looting the company's financial credits. Meanwhile, NeonCorp's executives discovered that the company's previous evaluator, who was responsible for approving loans, was approving or rejecting applications entirely by chance, based solely on the physical appearance of the applicants! He was immediately fired and transferred to the organic recycling department, and now the threat of bankruptcy looms over the NeonCorp empire.
Now, NeonCorp wants one thing from you: design an intelligent, multi-table model that predicts the repayment status of financial contracts (loans) in the exact second of the request, based on the complete behavioral and transactional history of the citizens. NeonCorp's data extraction team has extracted the complete history of Nexus nodes (user accounts) and payment systems in the form of several relational tables and provided them to you. Your task is to save the company from a financial collapse!
| **target** | **Contract Status** |
| ---------- | --------------------------------------------- |
| 0 | Terminated and repaid contract |
| 1 | Terminated contract with incomplete repayment |
| 2 | Active contract with no registered issues |
| 3 | Active contract with debt or repayment issues |
For each `loan_id` in `test.csv`, you must predict exactly one of the values `{0, 1, 2, 3}`.
| **File** | **Primary Key** | **Description** |
| ----------------------- | --------------- | ---------------------------------------------------------- |
| `train.csv` | `loan_id` | Training loans along with the `target` column |
| `test.csv` | `loan_id` | Test loans without the target column |
| `account.csv` | `account_id` | Account, district, billing frequency, and opening date |
| `client.csv` | `client_id` | Client's gender, birth date, and district |
| `disp.csv` | `disp_id` | Client-account relationship and access type |
| `trans.csv` | `trans_id` | Transaction history, amount, balance, and transfer details |
| `order.csv` | `order_id` | Standing orders for the account |
| `card.csv` | `card_id` | Cards connected to account accesses |
| `district.csv` | `district_id` | Demographic and economic indicators of the district |
| `sample_submission.csv` | `loan_id` | Sample of a valid output format |
The relationship between the tables is also as follows:
| **Source Table and Column** | **Destination Table and Column** |
| -------------------------------------- | -------------------------------- |
| `train.account_id` / `test.account_id` | `account.account_id` |
| `account.district_id` | `district.district_id` |
| `disp.account_id` | `account.account_id` |
| `disp.client_id` | `client.client_id` |
| `client.district_id` | `district.district_id` |
| `card.disp_id` | `disp.disp_id` |
| `trans.account_id` | `account.account_id` |
| `order.account_id` | `account.account_id` |
The `date` column in `train.csv` and `test.csv` is the loan date. When creating features for a loan, only information that was available prior to that loan's date is permitted. To use transactions, the following condition must be met:
Code snippet
```
trans.date < loan.date
```
As a result, a transaction recorded simultaneously with or after the loan date must not be used in the features of that loan. The account opening date must also be prior to the loan date. The `card.csv` and `order.csv` tables do not have separate validity periods and should be interpreted as snapshot information.
### **Output**
To evaluate your system, you must predict the final status of the contracts present in `test.csv`. Your output must be a text or CSV file containing two columns named `contract_id` and `prediction`. The prediction column must contain numerical classes (0, 1, 2, or 3).
Code snippet
```
loan_id,target
10045,2
10046,0
10047,3
10048,1
...
```
### **Evaluation Method and Financial Penalties**
## **Problem Evaluation**
To evaluate this problem and your model, we use the following "cost matrix". In this problem, due to financial risks, correct predictions have no penalty (0), and every type of prediction error carries a different penalty weight (based on the severity of the loss for the business). Your goal is to train a model that minimizes fatal errors.
| **Actual Class \ Prediction** | **0 (Successful Settlement)** | **1 (Default/No Repayment)** | **2 (Regular Active)** | **3 (In Debt & Critical)** |
| ----------------------------- | ----------------------------- | ---------------------------- | ---------------------- | -------------------------- |
| **0 (Successful Settlement)** | 0 | 20 | 5 | 20 |
| **1 (Default/No Repayment)** | 100 | 0 | 100 | 5 |
| **2 (Regular Active)** | 5 | 20 | 0 | 20 |
| **3 (In Debt & Critical)** | 100 | 5 | 100 | 0 |
**Final Score Calculation Formula:**
$$\text{Final Score} = 100 \times \max\left(0, 1 - \frac{\text{Model Penalty}}{\text{Baseline Penalty}}\right)$$
%align_left_start%
+ **Model Penalty:** Total penalties generated by your model's predictions.
+ **Baseline Penalty:** Total penalties of the baseline model.
%align_end%
Financial penalties are considered based on the following damage matrix:
+ **Rejecting a good customer (Missed opportunity):** If a loan is genuinely without issue (Class 0 or 2) but your model predicts it as critical or default (Class 1 or 3), the company loses the customer. **(Penalty: 20 QC)**
+ **Approving a default customer (Heavy loss):** If a loan is genuinely default or critical (Class 1 or 3) but your model predicts it as without issue (Class 0 or 2), the company loses all the money. **(Heavy penalty: 100 QC)**
+ **Timing mistake (Administrative error):** If you predict an active loan as terminated or vice versa (error between Class 0 and 2, or error between Class 1 and 3). **(Minor penalty: 5 QC)**
+ **Perfectly correct prediction:** No damage. **(Penalty: 0 QC)**
NeonCorp Operation
| **You can download the initial exercise file from [link](https://quera.org/contest/assignments/103149/download_problem_initial_project/356092/).** |
| ------------------------------------------------------------------------------ |
Welcome to the "Cinema-Plus" startup!
A few months ago, the product team noticed a strange problem. Although the movie recommendation system has an acceptable performance for most users, a group of users is almost never satisfied with the system's recommendations. These individuals usually have a specific, strict taste that differs from the mainstream; the kind of audience that, if you've heard the name **Masoud Ferasati**, you can guess what this type of taste entails!
As you know, Mr. Ferasati's taste is different from many audiences. He has repeatedly harshly criticized movies that the general public liked, and conversely, defended works that received less attention. For this reason, using a regular recommendation system that merely suggests the most popular movies is completely useless.
To solve this problem, the data team has launched a project named **Ferasati Project**. In this project, thousands of user reviews and comments, registered ratings, and movie watch histories have been collected. Now it is your turn to implement the core of this recommendation system.
You must write a function that takes a user ID (`user_id`) as input, models their taste, and suggests the best movies they haven't watched yet.

The data engineering team has provided the extracted information to you in a single file. Each row of this dataset represents a review submitted by a user for a specific movie. The details of this dataset's columns are as follows:
| **Column Name** | **Description** |
| ------------------ | ------------------------------------------------------------------- |
| `name_film` | Movie name |
| `director` | Movie director's name |
| `imdb` | Movie rating on IMDB |
| `overal_rate` | Average overall rating of Cinema-Plus platform users for this movie |
| `rates_count` | Total number of users who rated this movie on the platform |
| `user_id` | Unique identifier of the user who submitted the review |
| `comment_date` | Date the review was submitted by the user |
| `comment_likes` | Number of times this user's review was liked by others |
| `comment_dislikes` | Number of times this user's review was disliked by others |
| `comment_text` | Review text and user's opinion about the movie |
| `movie_id` | Unique identifier of the movie |
### **Submission Format**
To evaluate your program, you must submit a Python file named `movie_suggestor.py`. This file must contain a function named `movie_suggestor`.
### **Input**
The input to the program is an integer (`int`) representing the `user_id`, along with the dataframe provided in the initial files. (The dataframe is passed directly, and there is no need to read it inside movie_suggestor.py.)
```
11111, df
```
### **Output**
The output consists of **10 movie identifiers (movie_id)**, each placed on a separate line.
```
2222
3333
4444
4555
...
```
### **Evaluation Method**
To evaluate your model's performance, the judging system uses the **Precision@10** metric. For each user given as input to your function, the judging system has an actual list (_Ground Truth_) that we know the user is interested in. The final score calculation formula is as follows:
$$Mean\ Precision@10 = \frac{1}{N} \sum_{u=1}^{N} \left( \frac{\vert{}R_u \cap G_u\vert{}}{10} \times 100 \right)$$
Where in this formula:
%align_left_start%
+ $N$: Total number of users evaluated in the judging system.
+ $u$: Represents each of the users.
+ $R_u$: The set of 10 movies suggested by your function for user $u$.
+ $G_u$: The actual set of movies (_Ground Truth_) that user $u$ has definitely watched or is interested in.
+ $\vert{}R_u \cap G_u\vert{}$: The number of common movies between your suggested list and the actual list, which indicates the number of correct suggestions.
%align_end%