Competitive/Collaborative Programming Class

ICPC Computer Programming Contest Prep

Problem Solving in Computer Science

Spring 2013 -- CSC 2700 Section 02

[Isaac's Home Page ]  [Mailing List ]  [Class Page ]  [Normal ]  

week06/f/JillRidesAgain.rtf

{\rtf1\ansi\ansicpg1252\cocoartf949\cocoasubrtf540
{\fonttbl\f0\fnil\fcharset0 Consolas;\f1\fnil\fcharset0 Consolas-Bold;}
{\colortbl;\red255\green255\blue255;\red128\green128\blue128;\red255\green255\blue255;\red85\green85\blue85;
\red43\green101\blue150;\red225\green43\blue148;\red12\green22\blue249;}
\margl1440\margr1440\vieww9000\viewh8400\viewkind0
\deftab720
\pard\pardeftab720\sl280

\f0\fs26 \cf2 \cb3 /* UVA 507 - Jill Rides Again\
   Randall Head */\
\
\
#include <iostream>\cf4 \
\cf2 #include <vector>\cf4 \
\cf2 #include <stdio.h>\cf4 \
\pard\pardeftab720\sl280

\f1\b \cf5 using
\f0\b0 \cf4  
\f1\b \cf5 namespace
\f0\b0 \cf4  \cf0 std;\cf4 \
\'a0\
\pard\pardeftab720\sl280

\f1\b \cf2 int
\f0\b0 \cf4  \cf0 main() \{\cf4 \
\'a0\'a0\'a0\'a0
\f1\b \cf2 int
\f0\b0 \cf4  \cf0 N, T, INF = 1 << 29, q;\cf4 \
\'a0\'a0\'a0\'a0\cf0 cin >> T;\cf4 \
\'a0\'a0\'a0\'a0
\f1\b \cf5 for
\f0\b0 \cf4  \cf0 (
\f1\b \cf2 int
\f0\b0 \cf4  \cf0 t = 1; t <= T; ++t) \{\cf4 \
\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\cf0 cin >> N;\cf4 \
\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\cf0 vector<
\f1\b \cf2 int
\f0\b0 \cf0 > a;\cf4 \
\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0
\f1\b \cf5 while
\f0\b0 \cf4  \cf0 (--N && cin >> q) a.push_back(q);\cf4 \
\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0
\f1\b \cf2 int
\f0\b0 \cf4  \cf0 curMax = 0, max = -INF, a0 = 1, maxa0 = 1, maxan = 1;\cf4 \
\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0
\f1\b \cf5 for
\f0\b0 \cf4  \cf0 (
\f1\b \cf2 int
\f0\b0 \cf4  \cf0 i = 0; i < a.size(); ++i) \{\cf4 \
\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\cf0 curMax += a[i];\cf4 \
\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0
\f1\b \cf5 if
\f0\b0 \cf4  \cf0 (curMax > max || (curMax == max && (i + 2 - a0 > maxan - maxa0)))\cf4 \
\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\cf0 max = curMax, maxa0 = a0, maxan = i + 2;\cf4 \
\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0
\f1\b \cf5 if
\f0\b0 \cf4  \cf0 (curMax < 0)\cf4 \
\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\cf0 curMax = 0, a0 = i + 2, maxa0 = max <= 0 ? a0 : maxa0;\cf4 \
\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\cf0 \}\cf4 \
\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0
\f1\b \cf5 if
\f0\b0 \cf4  \cf0 (max <= 0)\cf4 \
\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0
\f1\b \cf6 printf
\f0\b0 \cf0 (\cf7 "Route %d has no nice parts\\n"\cf0 , t);\cf4 \
\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0
\f1\b \cf5 else
\f0\b0 \cf4 \
\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0\'a0
\f1\b \cf6 printf
\f0\b0 \cf0 (\cf7 "The nicest part of route %d is between stops %d and %d\\n"\cf0 , t, maxa0, maxan);\cf4 \
\'a0\'a0\'a0\'a0\cf0 \}\cf4 \
\'a0\'a0\'a0\'a0
\f1\b \cf5 return
\f0\b0 \cf4  \cf0 0;\cf4 \
\pard\pardeftab720\sl280
\cf0 \}\cf4 \
}

The statements and opinions included in these pages are those of only. Any statements and opinions included in these pages are not those of Louisiana State University or the LSU Board of Supervisors.
© 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Isaac Traxler