Files
mock-uil-2025/exam/packet.tex
2025-11-22 22:52:01 -06:00

240 lines
6.1 KiB
TeX
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

\documentclass[12pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage{amsmath, amssymb}
\usepackage{geometry}
\usepackage{fancyhdr}
\usepackage{listings}
\usepackage{xcolor}
\usepackage{enumitem}
\usepackage{comment}
% Page layout
\geometry{margin=1in}
\pagestyle{fancy}
\fancyhf{}
\fancyhead[L]{Programming Competition Test}
\fancyhead[R]{\today}
\fancyfoot[C]{\thepage}
% Listings style for code
\lstset{
language=Java,
basicstyle=\ttfamily\small,
keywordstyle=\color{blue},
commentstyle=\color{green!60!black},
stringstyle=\color{red},
numbers=left,
numberstyle=\tiny,
stepnumber=1,
numbersep=5pt,
showstringspaces=false,
breaklines=true,
frame=single,
rulecolor=\color{black!30},
backgroundcolor=\color{black!2}
}
% Custom commands
\newcommand{\problem}[1]{\section*{#1}}
\newcommand{\inputformat}{\textbf{Input format:}}
\newcommand{\outputformat}{\textbf{Output format:}}
\newcommand{\examples}{\textbf{Example(s):}}
\begin{document}
\begin{center}
{\LARGE \textbf{Programming Competition Test}}\\[2mm]
{\large Duration: 2 hours \quad Total Marks: 100}
\end{center}
\section*{Instructions}
\begin{enumerate}[label=\arabic*.]
\item This test contains algorithmic problems similar to those found on LeetCode or HackerRank.
\item Use efficient algorithms to avoid timeouts; naive solutions may not receive full marks.
\item Submit solutions in C++, Python, or Java.
\item For each problem, write a function or program according to the specified input/output format.
\item Clearly comment your code if necessary.
\end{enumerate}
\begin{comment}
% ========================= Problem 1 =========================
\problem{Problem 1: Two Sum}
\textit{Difficulty: Easy}
Given an array of integers \texttt{nums} and an integer \texttt{target}, return indices of the two numbers such that they add up to \texttt{target}. Assume exactly one solution exists.
\inputformat
\begin{itemize}
\item First line contains an integer $n$ ($2 \leq n \leq 10^5$), the size of the array.
\item Second line contains $n$ integers, the elements of the array.
\item Third line contains the integer \texttt{target}.
\end{itemize}
\outputformat
\begin{itemize}
\item Print two integers, the indices of the elements adding up to \texttt{target}.
\end{itemize}
\examples
\begin{verbatim}
Input:
4
2 7 11 15
9
Output:
0 1
\end{verbatim}
% ========================= Problem 2 =========================
\problem{Problem 2: Longest Substring Without Repeating Characters}
\textit{Difficulty: Medium}
Given a string \texttt{s}, find the length of the longest substring without repeating characters.
\inputformat
\begin{itemize}
\item A single line containing the string \texttt{s} ($1 \leq |s| \leq 10^5$).
\end{itemize}
\outputformat
\begin{itemize}
\item A single integer, the length of the longest substring without repeated characters.
\end{itemize}
\examples
\begin{verbatim}
Input:
abcabcbb
Output:
3
\end{verbatim}
% ========================= Problem 3 =========================
\problem{Problem 3: Merge Intervals}
\textit{Difficulty: Hard}
Given a collection of intervals, merge all overlapping intervals.
\inputformat
\begin{itemize}
\item First line contains an integer $n$ ($1 \leq n \leq 10^4$), the number of intervals.
\item Next $n$ lines contain two integers each, representing the start and end of each interval.
\end{itemize}
\outputformat
\begin{itemize}
\item Print the merged intervals in ascending order of start times.
\end{itemize}
\examples
\begin{verbatim}
Input:
4
1 3
2 6
8 10
15 18
Output:
1 6
8 10
15 18
\end{verbatim}
\end{comment}
% ========================= Problem 6 =========================
\problem{Problem 6(.7): Six Seven}
\textit{Difficulty: Easy}
\begin{itemize}
You are given a string S composed of only the characters 6', 7, A', B', and \#' (without the quotation marks). This string is processed from left to right, and you must maintain a sequence of chracters that changes according to these rules:
\item 6 - add a 6 to the end of the sequence
\item 7 - if the sequence is non-empty and its last chracter is 6', remove that last 6', otherwise, add 7' to the end of the sequence
\item A - reverse the sequence
\item B - add a duplicate of the current sequence to the end of it
\item \# - clear the sequence
\end{itemize}
\inputformat
\begin{itemize}
\item The first line consists of the string S. The string consists only of the characters 6, 7, A, B, and \#.
\end{itemize}
\outputformat
\begin{itemize}
\item Output a single line containig the final form of the sequence. If the sequence is empty at the end, output “EMPTY” (without the quotations).
\end{itemize}
\examples
\begin{verbatim}
Input 1:
67A6
Output 1:
6
Input 2:
66B7
Output 2:
666
Input 3:
7A7#
Output 3:
EMPTY
\end{verbatim}
% ========================= Problem 7 =========================
\problem{Problem 7: Limited Jumps}
\textit{Difficulty: Medium}
You are given a grid of size N x M, where each cell contains either 6 or 7. You start at the top-left corner (1,1) and want to reach the bottom-right corner (N,M). You can move right, down, or jump diagonally (right+down). The maze has these rules:
\begin{itemize}
\item You can step on a 6 any number of times
\item You can step on a 7 at most once in your path
\item You can make at most one diagonal move in your path
\end{itemize}
Your task is to determine if there exists any valid path from (1,1) to (N,M) obeying the rules.
\inputformat
\begin{itemize}
\item The first line consists 2 integers N and M ($1 \leq N, M \leq 10^9$), the number of rows and columns, respectively
\item The next N lines will consist of strings of length M, containing 6 or 7
\end{itemize}
\outputformat
\begin{itemize}
\item Output a single line. If there exists a valid path, print ``Sixxx sevennn" (without the quotations). If there does not exist a valid path, print ``Six was afraid of seven after all" (without the quotations).
\end{itemize}
\examples
\begin{verbatim}
Input 1:
2 2
66
67
Output 1:
Sixxx sevennn
Input 2:
2 2
77
77
Output 2:
Six was afraid of seven after all
Input 3:
3 3
666
676
666
Output 3:
Sixxx sevennn
\end{verbatim}
\end{document}