#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