\definecolor{dkgreen}{rgb}{0,0.4,0}
\definecolor{gray}{rgb}{0.5,0.5,0.5}
\definecolor{lightgray}{rgb}{0.95,0.95,0.95}
\definecolor{mauve}{rgb}{0.58,0,0.82}

\def\commentstyle{\color{dkgreen}}
\lstset{ %
  language=C++,                   % the language of the code
  basicstyle=\footnotesize\ttfamily, % the size of the fonts that are used for the code
  numbers=left,                   % where to put the line-numbers
  numberstyle=\footnotesize\color{black},  % the style that is used for the line-numbers
  stepnumber=1,                   % the step between two line-numbers. If it's 1, each line 
                                  % will be numbered
  numbersep=0.7em,                % how far the line-numbers are from the code
  backgroundcolor=\color{lightgray}, % choose the background color. You must add \usepackage{color}
  showspaces=false,               % show spaces adding particular underscores
  showstringspaces=false,         % underline spaces within strings
  showtabs=false,                 % show tabs within strings adding particular underscores
  frame=single,                   % adds a frame around the code
  rulecolor=\color{black},        % if not set, the frame-color may be changed on line-breaks within not-black text (e.g. commens (green here))
  tabsize=2,                      % sets default tabsize to 2 spaces
  breaklines=true,                % sets automatic line breaking
  breakatwhitespace=false,        % sets if automatic breaks should only happen at whitespace
  identifierstyle=\color{blue!25!black},  
  keywordstyle=\color{blue!90!black},      % keyword style
  commentstyle=\commentstyle,     % comment style
  stringstyle=\color{mauve},      % string literal style
  escapeinside={\`}{\`},          % if you want to add a comment within your code
  escapebegin=\commentstyle\footnotesize,
  %morekeywords={n,k},             % if you want to add more keywords to the set
  morecomment=[l][\color{dkgreen}]{\#}, % to color #include<cstdio> 
  morecomment=[s][\commentstyle\color{gray!50!black}]{/**}{*/}
}
