FESTIVAL 문제 질문드립니다! sclee1 FESTIVAL 문제를 풀고있는데요.. 왜 런타임에러(메모리fault)가 나는지 모르겠어요.. 분명히 테스트 케이스 잘 동작되고 왠만한거 다 넣어봤는데 잘 동작하는데, 왜 그런지 모르겠어요 소스는 아래와 같습니다. /** * BRACKETS2 * * @author Seungchul Lee * @solved 2016. 10. 03 * * http://algospot.com/judge/problem/read/FESTIVAL */ #define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <cstring> #include <cstdio> #include <algorithm> #include <string> #include <vector> #include <list> #include <stack> using namespace std; #define INF 987654321 namespace FESTIVAL { int N; int L; vector<double> costs; vector<double> movingAverage2(const vector<double>&A, int L) { int N = A.size(); vector<double> ret; double partialSum = 0; if (L == N) { for (int i = 0; i < L; ++i) { partialSum += A[i]; } ret.push_back(partialSum / N); return ret; } for (L; L < N ; ++L) { for (int i = 0; i < L - 1; ++i) { partialSum += A[i]; } for (int i = L - 1; i < N; ++i) { partialSum += A[i]; ret.push_back(partialSum / L); partialSum -= A[i - L + 1]; } partialSum = 0; } return ret; } int do_main(int argc, const char *argv[]) { freopen("input.txt", "r", stdin); int TC; int cnt = 0; cin >> TC; while (TC--) { cin >> N; cin >> L; for (int i = 0; i < N; ++i) { double num = 0; cin >> num; costs.push_back(num); } vector<double> ans = movingAverage2(costs, L); double minVal = 987654321; while (!ans.empty()) { minVal = min(minVal, ans.back()); ans.pop_back(); } printf("%.12f\n", minVal); ans.clear(); } return 0; } } #ifndef DRIVER int main(int argc, const char *argv[]) { return FESTIVAL::do_main(argc, argv); } #endif 8년 전
3개의 댓글이 있습니다. JongMan 이미 정답 받으신 듯하지만 costs 벡터를 초기화 안 하고 계시네요. 왜 이 때문에 런타임 에러가 나는지는 모르겠습니다... 8년 전 link JongMan 메모리 초과인가 봅니다. 8년 전 link sclee1 @JongMan 답변 감사드립니다!! 8년 전 link 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.
sclee1
FESTIVAL 문제를 풀고있는데요..
왜 런타임에러(메모리fault)가 나는지 모르겠어요..
분명히 테스트 케이스 잘 동작되고 왠만한거 다 넣어봤는데 잘 동작하는데, 왜 그런지 모르겠어요
소스는 아래와 같습니다.
8년 전