[伯俊/BOJ]12934回転ゲーム[Gold 5]

1142 ワード

  • ゲーム
  • 質問元:https://www.acmicpc.net/problem/12934
    数学の問題は並べ替えや実施の問題より容易であるようだ.
    code
    #include <iostream>
    #include <cmath>
    using namespace std;
    
    int main()
    {
    	long long x, y, sum = 0, big, a = 0, cnt = 0;
    	bool ispossible = 1;
    
    	cin >> x >> y;
    	sum = x + y;
    	(x >= y) ? big = x : big = y;
    
    	for (int i = 0; i <= big; i++)
    	{
    		if ((sum * 2) - i == pow(i, 2))
    		{
    			a = i;
    			ispossible = 1;
    			break;
    		}
    		else if ((sum * 2) - i < pow(i, 2))
    		{
    			ispossible = 0;
    			break;
    		}
    		else
    			ispossible = 0;
    	}
    
    	if (ispossible)
    	{
    		for (int i = a; i >= 1; i--)
    		{
    			if (x >= i)
    			{
    				x -= i;
    				cnt++;
    			}
    		}
    		cout << cnt;
    	}	
    	else
    		cout << -1;
    
    	return 0;
    }