AOJ 0022 - Maximum Sum Sequence
久しぶりにやった.
#include <iostream> #include <vector> int main(){ int n; while(std::cin >> n, n){ std::vector<int> v; for(int i=0;i<n;i++){ int a; std::cin >> a; v.push_back(a); } int max = v[0];//ここを0にすると負け for(int i=0;i<n;i++){ int k = 0; for(int j=i;j<n;j++){ k += v[j]; if(k > max)max = k; } } std::cout << max << std::endl; } }
ショートコーディング(179byte)
#include<iostream> main(){int n,v[5000],m;while(std::cin>>n,m=n){for(;m--;)std::cin>>v[m];m=*v;for(int i=0;i<n;i++)for(int j=i,k=v[i];j++<n;k+=v[j])m=k>m?k:m;std::cout<<m<<'\n';}}
m=nの戻り値はnだった.