페이지

2014번: 소수의 곱

https://www.acmicpc.net/problem/2014


#include<stdio.h>
#include<algorithm>
using namespace std;
typedef long long ll;
int k, n, r[100001], p[100], idx[100];
ll nxt[100];
int main() {
    scanf("%d %d", &k, &n);
    for (int i = 0; i < k; i++) {
        scanf("%d", &p[i]);
        nxt[i] = p[i];
    }
    r[0] = 1;
    for (int i = 1; i <= n; i++) {
        ll mini = *min_element(nxt, nxt + k);
        r[i] = mini;
        for (int j = 0; j < k; j++)
            if (nxt[j] == mini)
                nxt[j] = (ll)p[j] * r[++idx[j]];
    }
    printf("%d", r[n]);
    return 0;
}

댓글 없음 :

댓글 쓰기