공부/SWEA

SWEA 1860. 진기의 최고급 붕어빵 (C++)

밤톨ㅇl 2024. 5. 6. 01:30
#include <stdio.h>
#include <algorithm>

using namespace std;

int N, M, K;
int arr[101];

int main()
{
    int tc = 0;
    scanf("%d", &tc);
    for (int t = 1; t <= tc; t++)
    {
        bool flag = true;
        int cnt = 0, idx = 0;

        scanf("%d %d %d", &N, &M, &K);
        for (int i = 0; i < N; i++)
        {
            scanf("%d", &arr[i]);
        }

        sort(arr, arr+N);
        
        if (arr[0] >= M)
        {
            for (int i = 1; i <= arr[N - 1]; i++)
            {
                if (i % M == 0)
                    cnt += K;
                
                if (i == arr[idx])
                {
                    if (cnt > 0)
                    {
                        cnt--;
                        idx++;
                    }
                    else
                    {
                        flag = false;
                        break;
                    }
                }
            }
        }
        else
            flag = false;

        if (flag)
            printf("#%d Possible\n", t);
        else
            printf("#%d Impossible\n", t); 
    }

    return 0;
}