#include<iostream>
using namespace std;
void max(int a[],int n,int j)
{
int m_s=1,m_e=2,m=a[0],s=a[0],st=0;
for (int i=1;i<n;i++)
{
if (s>=0)
s+=a[i];
else
{
st=i;
s=a[i];
}
if (s>m)
{
m=s;
m_s=st+1;
m_e=i+2;
}
else if (s==m)
{
if (i-st > m_e-m_s)
{
m=s;
m_s=st+1;
m_e=i+2;
}
else if (i-st == m_e-m_s)
{
if (st < m_s)
{
m=s;
m_s=st+1;
m_e=i+2;
}
}
}
}
if (m>=0)
cout<<"The nicest part of route "<<j<<" is between stops "<<m_s<<" and "<<m_e<<endl;
else
cout<<"Route "<<j<<" has no nice parts\n";
}
int main()
{
int n,s;
cin>>n;
for (int i=1;i<=n;i++)
{
cin>>s;
int a[s-1];
for (int j=0;j<s-1;j++)
cin>>a[j];
max(a,s-1,i);
}
}
Saturday, 18 January 2014
UVA 507
Labels:
uva
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment