오늘의 문제
6064 카잉 달력
11051 이항 계수 2
#include <bits/stdc++.h>
using namespace std;
int t, m, n, x, y;
int last(int a, int b) {
int tmp, ta, tb;
if (a > b) {
ta = a; tb = b;
}
else {
ta = b; tb = a;
}
while (ta != 0) {
tmp = tb % ta;
tb = ta;
ta = tmp;
}
return (a * b) / tb;
}
int main() {
cin >> t;
while (t--) {
cin >> m >> n >> x >> y;
int mn = last(m, n);
if (m == x && n == y) {
cout << mn << "\n";
continue;
}
int ans = -1;
for (int i = x; i <= mn; i += m) {
if (i % n == y || (n == y && i % n == 0)) {
ans = i;
break;
}
}
cout << ans << "\n";
}
}
#include <bits/stdc++.h>
using namespace std;
#define ll long long
int n, k, dp[1002][1002];
int main() {
cin >> n >> k;
dp[1][0] = 1;
dp[1][1] = 1;
for (int i = 2; i <= n; i++) {
for (int j = 0; j <= i; j++) {
dp[i][j] = (dp[i - 1][j] + dp[i - 1][j - 1]) % 10007;
}
}
cout << dp[n][k];
}
문득.. nCk = n-1Ck + n-1Ck-1 이라는 공식이 떠올랐다..