72 lines
1.4 KiB
C++
72 lines
1.4 KiB
C++
|
|
#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;
|
|||
|
|
}
|