\usepackage[a4paper,total={160mm,250mm}]{geometry}
\usepackage[utf8]{inputenc}
\usepackage[ruled,vlined]{algorithm2e}
\usepackage{amsmath}
\usepackage{amsthm}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{amscd}
\usepackage{array}
\usepackage{caption}
\usepackage{dirtree}
\usepackage{enumitem}
\usepackage{graphicx}
\usepackage[colorlinks=true,linkcolor=blue]{hyperref}
\usepackage{listings}
\usepackage{mathtools}
\usepackage{mdframed}
\usepackage{ngerman}
\usepackage{subcaption}
\usepackage{tcolorbox}
\usepackage{tikz}
\usepackage{xcolor}
%\usepackage[inline]{showlabels}

\tcbuselibrary{breakable}

\definecolor{shade}{gray}{.5}

\renewcommand*{\thesection}{\arabic{section}}
\renewcommand{\thesubfigure}{\roman{subfigure}}

%\theoremstyle{definition}
%\newtheorem{aufgabe}{Aufgabe}
%\numberwithin{aufgabe}{section}
%\theoremstyle{definition}
%\newtheorem*{losung}{Lösung}

\definecolor{mygreen}{rgb}{0,0.6,0}
\definecolor{mygray}{rgb}{0.5,0.5,0.5}
\definecolor{mymauve}{rgb}{0.58,0,0.82}
\definecolor{lightgray}{rgb}{0.9,0.9,0.9}

\lstset{inputpath=./codes}
\lstdefinestyle{python}{
	backgroundcolor=\color{lightgray},   % choose the background color; you must add \usepackage{color} or \usepackage{xcolor}; should come as last argument
	basicstyle=\footnotesize\ttfamily,        % the size of the fonts that are used for the code
	breakatwhitespace=false,         % sets if automatic breaks should only happen at whitespace
	breaklines=true,                 % sets automatic line breaking
	captionpos=b,                    % sets the caption-position to bottom
	commentstyle=\color{mygreen},    % comment style
	deletekeywords={...},            % if you want to delete keywords from the given language
	escapeinside={\\[}{\\]},          % if you want to add LaTeX within your code
	extendedchars=true,              % lets you use non-ASCII characters; for 8-bits encodings only, does not work with UTF-8
	firstnumber=1,                   % start line enumeration with line 1000
	frame=single,	                 % adds a frame around the code
	keepspaces=true,                 % keeps spaces in text, useful for keeping indentation of code (possibly needs columns=flexible)
	keywordstyle=\color{blue},       % keyword style
	language=Python,                 % the language of the code
	literate=%
	    {ä}{{\"a}}1%
		{ö}{{\"o}}1%
		{ü}{{\"u}}1%
		{ß}{{\ss}}1%
		{Ä}{{\"A}}1%
		{Ö}{{\"O}}1%
		{Ü}{{\"U}}1,%
	morekeywords={*,...},            % if you want to add more keywords to the set
	numbers=left,                    % where to put the line-numbers; possible values are (none, left, right)
	numbersep=5pt,                   % how far the line-numbers are from the code
	numberstyle=\tiny\color{mygray}, % the style that is used for the line-numbers
	rulecolor=\color{black},         % if not set, the frame-color may be changed on line-breaks within not-black text (e.g. comments (green here))
	showspaces=false,                % show spaces everywhere adding particular underscores; it overrides 'showstringspaces'
	showstringspaces=false,          % underline spaces within strings only
	showtabs=false,                  % show tabs within strings adding particular underscores
	stepnumber=1,                    % the step between two line-numbers. If it's 1, each line will be numbered
	stringstyle=\color{mymauve},     % string literal style
	tabsize=4,	                     % sets default tabsize to 2 spaces
	title=\lstname,                   % show the filename of files included with \lstinputlisting; also try caption instead of title
	rangeprefix=\#---,
	rangesuffix=---,
	includerangemarker=false
}

\newcounter{taskcounter}
\numberwithin{taskcounter}{section}

\newenvironment{aufgabe}{%
	\refstepcounter{taskcounter}
	\mdfsetup{%
		frametitle={%
			\tikz[baseline=(current bounding box.east),outer sep=0pt]
			\node[anchor=east,rectangle,fill=blue!20]
			{\strut Aufgabe~\thetaskcounter};
		}
	}
	\mdfsetup{%
		innertopmargin=5pt,linecolor=blue!20,%
		linewidth=2pt,topline=true,roundcorner=5pt,%
		frametitleaboveskip=\dimexpr-\ht\strutbox\relax%
	}
	\begin{mdframed}[nobreak=false]\relax
}{%
	\end{mdframed}
}

\newenvironment{losung}{%
	\mdfsetup{%
		frametitle={%
			\tikz[baseline=(current bounding box.east),outer sep=0pt]
			\node[anchor=east,rectangle,fill=green!20]
			{\strut Lösung};
		}
	}
	\mdfsetup{%
		innertopmargin=5pt,linecolor=green!20,%
		linewidth=2pt,topline=true,roundcorner=5pt,%
		frametitleaboveskip=\dimexpr-\ht\strutbox\relax%
	}
	\begin{mdframed}[nobreak=false]\relax
}{%
	\end{mdframed}
}

%\newtcolorbox{mybox}[3][]
%{
%	colframe = #2!25,
%	colback  = #2!10,
%	coltitle = #2!20!black,
%	title    = {#3},
%	#1,
%}
%\newcounter{taskcounter}
%\numberwithin{taskcounter}{section}
%\newenvironment{aufgabe}{%
%	\refstepcounter{taskcounter}
%	\begin{mybox}{blue}{Aufgabe~\thetaskcounter}\relax
%	}{%
%	\end{mybox}
%}
%\newenvironment{losung}{%
%	\begin{mybox}{red}{Lösung}\relax
%	}{%
%	\end{mybox}
%}

%\pagestyle{empty}
\makeatletter\@addtoreset{section}{part}\makeatother%

\title{TODO TITLE}
\author{TODO AUTHOR}
\date{\today}
