초->말 순서로 진행된다는 것을 보면 누적 점수의 확인을 제미니스가 먼저 하고 난 뒤 걸리버스가 하는 식이라는 것을 알 수 있다. 졌다는 것이 기본 전제이므로 역전패를 당한 것을 확인하면 바로 출력하고 나가주면 된다.
#include <iostream>
using namespace std;
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int arr[2][9], sum[2] = {
0,
};
bool isWin = false;
for (int i = 0; i < 2; ++i)
for (int j = 0; j < 9; ++j)
{
int num;
cin >> num;
arr[i][j] = num;
}
for (int i = 0; i < 9; ++i)
{
sum[0] += arr[0][i];
if (sum[0] > sum[1])
isWin = true;
sum[1] += arr[1][i];
if (isWin && sum[0] < sum[1])
{
cout << "Yes";
return 0;
}
}
cout << "No";
return 0;
}
배열에 누적해가는 식으로 해도 되지만 i-1이 -1이 되는 구간을 생각하면 귀찮아질 것 같아서 누적한 값을 저장할 변수를 하나 두었다.