debug error run-time check failure #2
2023. 7. 18. 20:57ㆍ코딩테스트/백준
변수의 크기 문제
사용자가 설정한 배열보다 더 큰 데이터를 넣으려고 할 때
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
long long realSum = -1;
void pick(long long A[], long long picked[], long long n, long long m, long long toPick)
{
long long sum = 0;
for (long long i = 0; i < 3 - toPick; i++) {
sum += A[picked[i]];
//printf("%llu ", A[picked[i]]);
if (sum > m)
return;
}
if (toPick == 0) {
sum = 0;
for (long long i = 0; i < 3; i++) {
sum += A[picked[i]];
if (sum > m)
return;
}
if (sum > realSum)
realSum = sum;
}
long long smallest = 0;
if (toPick == 3)
smallest = 0;
else
smallest = picked[3-toPick-1];
for (long long i = smallest; i < n; i++) {
long long j, flag = 0;
for (j = 0; j < 3-toPick; j++)
if (picked[j] == i)
flag = 1;
if (flag == 1) continue;
picked[3-toPick] = i;
pick(A, picked, n, m, toPick - 1);
}
}
int main(void)
{
long long n, m;
long long* A;
long long picked[3]={0,0,0};
scanf("%lld %lld", &n, &m);
A = (long long*)malloc(sizeof(long long) * n);
for (long long i = 0; i < n; i++) {
scanf("%lld", &A[i]);
}
pick(A, picked, n, m, 3);
printf("%lld", realSum);
free(A);
return 0;
}
'코딩테스트 > 백준' 카테고리의 다른 글
[백준]5622. 다이얼 (0) | 2023.07.19 |
---|---|
[백준] 11005. 진법 변환2 (0) | 2023.07.19 |
[백준] 15894. 수학은 체육과목 입니다 (0) | 2023.07.08 |
[백준]2869. 달팽이는 올라가고 싶다 (0) | 2023.07.03 |
[백준]1193. 분수찾기 (0) | 2023.07.02 |