1912번 - 연속합
코드 1.
#include <iostream>#include <vector>#include <algorithm>using namespace std;
int main(){
int n; int m=0;
cin>>n; vector<int> a(n); vector<int> d(n); cin>>a[0]; d[0] = a[0];
for (int i = 1; i <n; ++i) { cin>>a[i]; d[i] = max(d[i-1]+a[i],a[i]); }
for (int i = 0; i <n; ++i) if (m<d[i]) m = d[i];
cout<<m;
return 0;}
코드 1 은 틀렸습니다 가나오고
아래의 코드는 성공이 나옵니다.
위의 코드가 어떤 케이스에서 틀리게 되는 것인지 궁금합니다.
초기화 문제 같네요?
위 코드에서 최대 값 뽑아내기 전에
m = d[0];
한 줄 넣으니까 패스됩니다.
댓글을 작성하려면 로그인해야 합니다.
dearsanta 7년 전
코드 1.
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
int n;
int m=0;
cin>>n;
vector<int> a(n);
vector<int> d(n);
cin>>a[0];
d[0] = a[0];
for (int i = 1; i <n; ++i)
{
cin>>a[i];
d[i] = max(d[i-1]+a[i],a[i]);
}
for (int i = 0; i <n; ++i)
if (m<d[i]) m = d[i];
cout<<m;
return 0;
}
코드 1 은 틀렸습니다 가나오고
아래의 코드는 성공이 나옵니다.
위의 코드가 어떤 케이스에서 틀리게 되는 것인지 궁금합니다.