VioletaBabel

블럭 없애기 (실패) 본문

알고리즘문제들/codeground
블럭 없애기 (실패)
Beabletoet 2017. 6. 16. 21:09

#include<cstdio>

using namespace std;

int main(int argc, char** argv)

{

int Answer, *tower, temp[3];

long long total;

int T, test_case, n, now;

setbuf(stdout, NULL);

scanf("%d", &T);

for (test_case = 0; test_case < T; test_case++)

{

total = 0, Answer = 0, now = 0;

scanf("%d", &n);

tower = new int[n];

for (int i = 0; i < n; ++i)

{

scanf("%d", &tower[i]);

total += tower[i];

}

while (total != 0)

{

for(int i = 0; i < 3; ++i)

temp[i] = tower[now+i];

for (int i = now + 1, j = 0; i < n - (now + 2); ++i, j = 0)

{

if (temp[0] < temp[1])

j = temp[1] - temp[0];

if (temp[2] < temp[1])

j = (j > (temp[1] - temp[2])) ? j : (temp[1] - temp[2]);

else if (j == 0)

j = 1;

total -= j;

tower[i] -= j;

temp[0] = temp[1];

temp[1] = temp[2];

temp[2] = tower[i + 2];

}

total = (total - (tower[now] + tower[n - (1 + now)]));

tower[now] = 0;

tower[n - (1 + now++)] = 0;

++Answer;

}

printf("Case #%d\n%d\n", test_case + 1, Answer);

delete[] tower;

}

return 0;

}



============다른 통과자랑 메모리 뜨는 값이 같은데 왜 나는 메모리 초과가 뜨는가.. 어떤 사람은 나보다 높던데..

'알고리즘문제들 > codeground' 카테고리의 다른 글

체스판 위의 길 (실패)  (0) 2017.06.17
화학자의 문장 (99점)  (0) 2017.06.16
미궁 속의 방  (0) 2017.06.16
다트 게임  (0) 2017.06.16
시험 공부  (0) 2017.06.16
Comments