2022/8/29 阿里巴巴第三题
用例过了,但是提交只有0,不知道哪里错了
有咩有懂的老哥
#include<cstdio> #include<cstring> #include<algorithm> #include<iostream> #include<map> using namespace std; typedef long long ll; const int maxn = 1e9 + 10; const int N = 202200 + 10; ll nums1[N], nums2[N]; ll cal(ll* nums, int len, int base) //返回[a,b]区间内base的倍数的个数 { int res = 0; for(int i = 0 ; i < len;i++) if(nums[i] % base == 0) res++; return res; } int main() { int n , m; cin >> n >> m; for(int i = 0 ;i < n ;i++) cin>> nums1[i]; for(int i = 0;i < m;i++) cin>>nums2[i]; ll l2022, l1011, l337,l3, l2; ll r2022, r1011, r337,r3, r2; l2022 = cal(nums1,n, 2022); l1011 = cal(nums1,n, 1011); l2 = cal(nums1, n,2); r2022 = cal(nums2,m, 2022); r1011 = cal(nums2,m, 1011); r2 = cal(nums2, m,2); ll res = l2022 * m + (l1011 - l2022) * r2 + (l2 - l2022) * r1011 + (n - l2 - l1011 + l2022) * r2022; ll ans = l2022 * m + (l1011 - l2022) * r2 + (l2 - l2022) * r1011 + (n - l2 - l1011 + l2022) * r2022; printf("%lld\n", ans); return 0; }