第二题: #include<iostream> (5488)#include<vector> #include<algorithm> using namespace std; inline int numOfYin(int n) { int res = 0; for (int i = 1; i <= sqrt(n)+1; i++) { int temp1 = i; int temp2 = n / i; if (temp1 * temp2 != n) continue; if (temp1 > temp2) break; if (temp1 == temp2) { res++; break; } res += 2; } return res; } int main() { int n; cin >>n; vector<int> A(n); vector<int> B(n); for (int i = 0; i < n; i++) { cin >> A[i]; } for (int i = 0; i < n; i++) { cin >> B[i]; } for (int i = 0; i < n; i++) { A[i] = numOfYin(A[i]); B[i] = numOfYin(B[i]); } sort(A.begin(), A.end()); sort(B.begin(), B.end()); int res = 0; int flag = B.size(); for (int i = A.size() - 1; i >= 0; i--) { int temp = A[i]; int j; for (j = flag - 1; j >= 0; j--) { if (temp > B[j]) break; } if (j < 0) break; res++; flag = j; } cout << res; }

相关推荐

牛客网
牛客网在线编程
牛客网题解
牛客企业服务