Files
python/TangDou/LanQiaoBei/LanQiaoBei13ShengSai_ZJ_II/MaiTangYuan_BEIBAO.cpp

72 lines
1.4 KiB
C++
Raw Normal View History

2025-08-30 18:35:01 +08:00
#include <bits/stdc++.h>
using namespace std;
/**
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
2
3 5
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
4
*/
const int N = 30;
int f[N]; //<2F><>ʾ<EFBFBD>ճ<EFBFBD>j<EFBFBD><6A><EFBFBD><EFBFBD><EFBFBD>ӵķ<D3B5><C4B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int a[N]; //ÿ<>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD>а<EFBFBD><D0B0>ӵ<EFBFBD><D3B5><EFBFBD><EFBFBD><EFBFBD>
int ans; //<2F><>װ<EFBFBD><D7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>İ<EFBFBD><C4B0>Ӹ<EFBFBD><D3B8><EFBFBD>
//<2F><><EFBFBD><EFBFBD>
bool isHz(int a, int b) {
for (int i = 2; i <= min(a, b); i++) //a,b<><62><EFBFBD>ܴ<EFBFBD><DCB4>ڵĹ<DAB5><C4B9><EFBFBD><EFBFBD><EFBFBD>
if (a % i == 0 && b % i == 0)
return false;
return true;
}
int main() {
int n;
cin >> n;
for (int i = 1; i <= n; i++)
cin >> a[i];
//<2F><><EFBFBD><EFBFBD>
sort(a + 1, a + 1 + n);
//a<><61><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><D0A3>Dz<EFBFBD><C7B2>Ǵ<EFBFBD><C7B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD><CAB5><EFBFBD>
bool flag = false;
int mx;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
for (int i = 1; i <= n; i++) {
for (int j = i + 1; j <= n; j++)
if (isHz(a[i], a[j])) {
flag = true;
mx = a[i] * a[j] - a[i] - a[j];
break;
}
if (flag)
break;
}
if (!flag) {
cout << -1 << endl;
return 0;
}
/**
<EFBFBD><EFBFBD>ȫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
f[j]<EFBFBD><EFBFBD>ʾ<EFBFBD>ճ<EFBFBD>j<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӵķ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>f[j]>0<EFBFBD>ʹյó<EFBFBD><EFBFBD><EFBFBD>f[j]=0<EFBFBD>ʹղ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
f[0] = 1; // 0<><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬<D7B4>ǺϷ<C7BA><CFB7>ģ<EFBFBD><C4A3>ǿ<EFBFBD><C7BF>Ե<EFBFBD><D4B5><EFBFBD><EFBFBD><EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD>һ<EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Dz<EFBFBD><C7B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֹ<EFBFBD><D6B9><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD>Ų<EFBFBD>Ҫ
for (int i = 1; i <= n; i++)
for (int j = 1; j <= mx; j++)
if (j >= a[i] && f[j - a[i]])//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>װ<EFBFBD>£<EFBFBD><C2A3><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɴ<C9B4><EFA3AC><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD>ƽ<EFBFBD>
f[j]++;
//ö<><C3B6>ÿ<EFBFBD><C3BF><EFBFBD><EFBFBD><EFBFBD>ܵ<EFBFBD><DCB5><EFBFBD><EFBFBD>֣<EFBFBD><D6A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4><EFBFBD>1<EFBFBD><31><EFBFBD><EFBFBD><EFBFBD>ϵķ<CFB5><C4B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǿ<EFBFBD><C7BF>Դճ<D4B4><D5B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޷<EFBFBD><DEB7>ճ<EFBFBD>
for (int i = 1; i <= mx; i++)
if (!f[i])
ans++;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
cout << ans << endl;
return 0;
}