• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

질문드립니다.

21.03.15 19:30 작성 조회수 161

0

이렇게 코드를 작성하였는데 처리되지 않은 예외가 뜹니다.

일일이 메모장에 입력을 가져다가 출력해봤는데 정답이 뜹니다. 그래도 뭔가 찝찝해서 무언가 실수가 있는지 확인해주시면 감사하겠습니다 ㅠ(이때까지 이런오류는 없었습니다)

#include <iostream>
#include <vector>
#include <string>
using namespace std;
int main(void)
{
	int N, K, cnt = 0, work = 0, i;

	cin >> N;

	vector<int> v(N + 1);
	for (i = 1; i <= N; ++i) {

		cin >> v[i];
		work += v[i];
	}
	i = 1;
	cin >> K;
	while (true)
	{
		if (work == 0) {

			cout << -1;
			return 0;
		}
		if (cnt == K) break;
		else ++i;
		
		if (i > N) i = 1;
		
		if (v[i] == 0 && work != 0)
		{
			while (v[i] == 0) {
				if (i > N) i = 1;
				else ++i;
			}
		}

		--work;
		--v[i];
		++cnt;

	}
	cout << i;


	return 0;
}

답변 1

답변을 작성해보세요.

0

안녕하세요^^

제 컴퓨터에서는 100점이 나오는데 무슨 오류가 뜬다는 건지 모르겠습니다.