• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

강의를 거의 다 듣고 처음으로 백준 문제를 풀어봤는데 메모리 초과 문제가 발생했습니다

22.03.12 19:25 작성 조회수 123

0

강의를 거의 다 듣고 처음으로 백준 문제를 풀어봤는데 dev c++에서는 잘 돌아가는데 왜 백준에서는 메모리초과가 뜨는지 모르겠습니다 ㅠㅠㅠ (모든 예제 입력에 맞는 출력이 나왔습니다)

1043 거짓말 문제이고(https://www.acmicpc.net/problem/1043), 강의에서 알려주신 인접리스트를 사용해서 문제를 풀어봤는데 왜 메모리 초과가 뜬걸까요?ㅠㅠㅠ 메모리 제한이 128MB인데, 혹시 dev c++에서 메모리 사용량을 확인할 수 있는 방법이 있나요?

 

#include<bits/stdc++.h>
using namespace std;
int main() {
	ios_base::sync_with_stdio(false);
	freopen("input.txt", "rt", stdin);
	int n, m, warning, party, i, j, a, b, flag, cnt=0;
	cin>>n>>m;
	vector<int> warnings(n+1, 0), tmp[n+1];
	cin>>a;
	if(a==0) {
		cout<<m;
		return 0;
	}
	for(i=0; i<a; i++) {
		cin>>b;
		warnings[b] = 1;
	}
	for(i=0; i<m; i++) {
		cin>>a;
		flag = 1;
		for(j=0; j<a; j++) {
			cin>>b;
			tmp[i].push_back(b);
			if(warnings[b] == 1) flag = 0;
		}
		if(flag == 0) {
			for(j=0; j<tmp[i].size(); j++) {
				warnings[tmp[i][j]] = 1;
			}
		}
	}
	for(i=0; i<m; i++) {
		flag = 1;
		for(j=0; j<a; j++) {
			if(warnings[tmp[i][j]] == 1) {
				flag = 0;
				break;
			}
		}
		if(flag == 1) cnt++;
	}
	cout<<cnt;
	return 0;
}

답변 1

답변을 작성해보세요.

1

안녕하세요^^

이건 저도 잘 모릅니다. 구글링하면 해당 문제의 정답소스파일이 있을 것 같은데 그것과 비교해보세요.

coli님의 프로필

coli

질문자

2022.03.16

네 알겠습니다!