3 solutions

  • 0
    @ 2026-1-13 17:12:08

    #include <bits/stdc++.h> using namespace std; int main(){ ios::sync_with_stdio(0);cin.tie(0);cout.tie(0); int T; cin>>T; while(T--){ int n; cin>>n; int cnt1=0,cnt2=0,cnt3=0; for(int i=1;i<=n;i++){ int x;cin>>x; if(x%31) cnt1++; if(x%32) cnt2++; if(x%3==0) cnt3++; } int c=min(cnt1,cnt2); cout<<(cnt3+c+((max(cnt1,cnt2)-min(cnt1,cnt2))/3))<<'\n'; } return 0; }

    • 0
      @ 2024-8-22 9:56:25
      #include <bits/stdc++.h>
      using namespace std;
      int main(){
          ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
          int T;
          cin>>T;
          while(T--){
              int n;
              cin>>n;
              int cnt1=0,cnt2=0,cnt3=0;
              for(int i=1;i<=n;i++){
                  int x;cin>>x;
                  if(x%3==1) cnt1++;
                  if(x%3==2) cnt2++;
                  if(x%3==0) cnt3++;
              }
              int c=min(cnt1,cnt2);
              cout<<(cnt3+c+((max(cnt1,cnt2)-min(cnt1,cnt2))/3))<<'\n';
          }
          return 0;
      }
      
      • @ 2025-12-30 17:45:42

        #include #include using namespace std;

        // 计算两个数的最大公约数,使用欧几里得算法 long long gcd(long long a, long long b) { return b == 0 ? a : gcd(b, a % b); }

        // 计算一个数的约数个数 int countDivisors(long long num) { int count = 0; // 遍历从 1 到 num 的平方根 for (long long i = 1; i * i <= num; ++i) { if (num % i == 0) { // 如果 i 是 num 的约数 if (i * i == num) { // 若 i 是 num 的平方根,只算一个约数 ++count; } else { // 否则 i 和 num/i 都是约数,算两个 count += 2; } } } return count; }

        int main() { int n; cin >> n; vector numbers(n); for (int i = 0; i < n; ++i) { cin >> numbers[i]; } // 先将第一个数作为初始的最大公约数 long long commonGCD = numbers[0]; // 遍历数组,计算所有数的最大公约数 for (int i = 1; i < n; ++i) { commonGCD = gcd(commonGCD, numbers[i]); } // 计算最大公约数的约数个数 int divisorCount = countDivisors(commonGCD); cout << divisorCount << endl; return 0; }

        #include #include using namespace std;

        // 计算两个数的最大公约数,使用欧几里得算法 long long gcd(long long a, long long b) { return b == 0 ? a : gcd(b, a % b); }

        // 计算一个数的约数个数 int countDivisors(long long num) { int count = 0; // 遍历从 1 到 num 的平方根 for (long long i = 1; i * i <= num; ++i) { if (num % i == 0) { // 如果 i 是 num 的约数 if (i * i == num) { // 若 i 是 num 的平方根,只算一个约数 ++count; } else { // 否则 i 和 num/i 都是约数,算两个 count += 2; } } } return count; }

        int main() { int n; cin >> n; vector numbers(n); for (int i = 0; i < n; ++i) { cin >> numbers[i]; } // 先将第一个数作为初始的最大公约数 long long commonGCD = numbers[0]; // 遍历数组,计算所有数的最大公约数 for (int i = 1; i < n; ++i) { commonGCD = gcd(commonGCD, numbers[i]); } // 计算最大公约数的约数个数 int divisorCount = countDivisors(commonGCD); cout << divisorCount << endl; return 0; }

        #include #include using namespace std;

        // 计算两个数的最大公约数,使用欧几里得算法 long long gcd(long long a, long long b) { return b == 0 ? a : gcd(b, a % b); }

        // 计算一个数的约数个数 int countDivisors(long long num) { int count = 0; // 遍历从 1 到 num 的平方根 for (long long i = 1; i * i <= num; ++i) { if (num % i == 0) { // 如果 i 是 num 的约数 if (i * i == num) { // 若 i 是 num 的平方根,只算一个约数 ++count; } else { // 否则 i 和 num/i 都是约数,算两个 count += 2; } } } return count; }

        int main() { int n; cin >> n; vector numbers(n); for (int i = 0; i < n; ++i) { cin >> numbers[i]; } // 先将第一个数作为初始的最大公约数 long long commonGCD = numbers[0]; // 遍历数组,计算所有数的最大公约数 for (int i = 1; i < n; ++i) { commonGCD = gcd(commonGCD, numbers[i]); } // 计算最大公约数的约数个数 int divisorCount = countDivisors(commonGCD); cout << divisorCount << endl; return 0; }

        #include #include using namespace std;

        // 计算两个数的最大公约数,使用欧几里得算法 long long gcd(long long a, long long b) { return b == 0 ? a : gcd(b, a % b); }

        // 计算一个数的约数个数 int countDivisors(long long num) { int count = 0; // 遍历从 1 到 num 的平方根 for (long long i = 1; i * i <= num; ++i) { if (num % i == 0) { // 如果 i 是 num 的约数 if (i * i == num) { // 若 i 是 num 的平方根,只算一个约数 ++count; } else { // 否则 i 和 num/i 都是约数,算两个 count += 2; } } } return count; }

        int main() { int n; cin >> n; vector numbers(n); for (int i = 0; i < n; ++i) { cin >> numbers[i]; } // 先将第一个数作为初始的最大公约数 long long commonGCD = numbers[0]; // 遍历数组,计算所有数的最大公约数 for (int i = 1; i < n; ++i) { commonGCD = gcd(commonGCD, numbers[i]); } // 计算最大公约数的约数个数 int divisorCount = countDivisors(commonGCD); cout << divisorCount << endl; return 0; }

        #include #include using namespace std;

        // 计算两个数的最大公约数,使用欧几里得算法 long long gcd(long long a, long long b) { return b == 0 ? a : gcd(b, a % b); }

        // 计算一个数的约数个数 int countDivisors(long long num) { int count = 0; // 遍历从 1 到 num 的平方根 for (long long i = 1; i * i <= num; ++i) { if (num % i == 0) { // 如果 i 是 num 的约数 if (i * i == num) { // 若 i 是 num 的平方根,只算一个约数 ++count; } else { // 否则 i 和 num/i 都是约数,算两个 count += 2; } } } return count; }

        int main() { int n; cin >> n; vector numbers(n); for (int i = 0; i < n; ++i) { cin >> numbers[i]; } // 先将第一个数作为初始的最大公约数 long long commonGCD = numbers[0]; // 遍历数组,计算所有数的最大公约数 for (int i = 1; i < n; ++i) { commonGCD = gcd(commonGCD, numbers[i]); } // 计算最大公约数的约数个数 int divisorCount = countDivisors(commonGCD); cout << divisorCount << endl; return 0; }

        #include #include using namespace std;

        // 计算两个数的最大公约数,使用欧几里得算法 long long gcd(long long a, long long b) { return b == 0 ? a : gcd(b, a % b); }

        // 计算一个数的约数个数 int countDivisors(long long num) { int count = 0; // 遍历从 1 到 num 的平方根 for (long long i = 1; i * i <= num; ++i) { if (num % i == 0) { // 如果 i 是 num 的约数 if (i * i == num) { // 若 i 是 num 的平方根,只算一个约数 ++count; } else { // 否则 i 和 num/i 都是约数,算两个 count += 2; } } } return count; }

        int main() { int n; cin >> n; vector numbers(n); for (int i = 0; i < n; ++i) { cin >> numbers[i]; } // 先将第一个数作为初始的最大公约数 long long commonGCD = numbers[0]; // 遍历数组,计算所有数的最大公约数 for (int i = 1; i < n; ++i) { commonGCD = gcd(commonGCD, numbers[i]); } // 计算最大公约数的约数个数 int divisorCount = countDivisors(commonGCD); cout << divisorCount << endl; return 0; }

        #include #include using namespace std;

        // 计算两个数的最大公约数,使用欧几里得算法 long long gcd(long long a, long long b) { return b == 0 ? a : gcd(b, a % b); }

        // 计算一个数的约数个数 int countDivisors(long long num) { int count = 0; // 遍历从 1 到 num 的平方根 for (long long i = 1; i * i <= num; ++i) { if (num % i == 0) { // 如果 i 是 num 的约数 if (i * i == num) { // 若 i 是 num 的平方根,只算一个约数 ++count; } else { // 否则 i 和 num/i 都是约数,算两个 count += 2; } } } return count; }

        int main() { int n; cin >> n; vector numbers(n); for (int i = 0; i < n; ++i) { cin >> numbers[i]; } // 先将第一个数作为初始的最大公约数 long long commonGCD = numbers[0]; // 遍历数组,计算所有数的最大公约数 for (int i = 1; i < n; ++i) { commonGCD = gcd(commonGCD, numbers[i]); } // 计算最大公约数的约数个数 int divisorCount = countDivisors(commonGCD); cout << divisorCount << endl; return 0; }

        #include #include using namespace std;

        // 计算两个数的最大公约数,使用欧几里得算法 long long gcd(long long a, long long b) { return b == 0 ? a : gcd(b, a % b); }

        // 计算一个数的约数个数 int countDivisors(long long num) { int count = 0; // 遍历从 1 到 num 的平方根 for (long long i = 1; i * i <= num; ++i) { if (num % i == 0) { // 如果 i 是 num 的约数 if (i * i == num) { // 若 i 是 num 的平方根,只算一个约数 ++count; } else { // 否则 i 和 num/i 都是约数,算两个 count += 2; } } } return count; }

        int main() { int n; cin >> n; vector numbers(n); for (int i = 0; i < n; ++i) { cin >> numbers[i]; } // 先将第一个数作为初始的最大公约数 long long commonGCD = numbers[0]; // 遍历数组,计算所有数的最大公约数 for (int i = 1; i < n; ++i) { commonGCD = gcd(commonGCD, numbers[i]); } // 计算最大公约数的约数个数 int divisorCount = countDivisors(commonGCD); cout << divisorCount << endl; return 0; }

        #include #include using namespace std;

        // 计算两个数的最大公约数,使用欧几里得算法 long long gcd(long long a, long long b) { return b == 0 ? a : gcd(b, a % b); }

        // 计算一个数的约数个数 int countDivisors(long long num) { int count = 0; // 遍历从 1 到 num 的平方根 for (long long i = 1; i * i <= num; ++i) { if (num % i == 0) { // 如果 i 是 num 的约数 if (i * i == num) { // 若 i 是 num 的平方根,只算一个约数 ++count; } else { // 否则 i 和 num/i 都是约数,算两个 count += 2; } } } return count; }

        int main() { int n; cin >> n; vector numbers(n); for (int i = 0; i < n; ++i) { cin >> numbers[i]; } // 先将第一个数作为初始的最大公约数 long long commonGCD = numbers[0]; // 遍历数组,计算所有数的最大公约数 for (int i = 1; i < n; ++i) { commonGCD = gcd(commonGCD, numbers[i]); } // 计算最大公约数的约数个数 int divisorCount = countDivisors(commonGCD); cout << divisorCount << endl; return 0; }

        #include #include using namespace std;

        // 计算两个数的最大公约数,使用欧几里得算法 long long gcd(long long a, long long b) { return b == 0 ? a : gcd(b, a % b); }

        // 计算一个数的约数个数 int countDivisors(long long num) { int count = 0; // 遍历从 1 到 num 的平方根 for (long long i = 1; i * i <= num; ++i) { if (num % i == 0) { // 如果 i 是 num 的约数 if (i * i == num) { // 若 i 是 num 的平方根,只算一个约数 ++count; } else { // 否则 i 和 num/i 都是约数,算两个 count += 2; } } } return count; }

        int main() { int n; cin >> n; vector numbers(n); for (int i = 0; i < n; ++i) { cin >> numbers[i]; } // 先将第一个数作为初始的最大公约数 long long commonGCD = numbers[0]; // 遍历数组,计算所有数的最大公约数 for (int i = 1; i < n; ++i) { commonGCD = gcd(commonGCD, numbers[i]); } // 计算最大公约数的约数个数 int divisorCount = countDivisors(commonGCD); cout << divisorCount << endl; return 0; }

        #include #include using namespace std;

        // 计算两个数的最大公约数,使用欧几里得算法 long long gcd(long long a, long long b) { return b == 0 ? a : gcd(b, a % b); }

        // 计算一个数的约数个数 int countDivisors(long long num) { int count = 0; // 遍历从 1 到 num 的平方根 for (long long i = 1; i * i <= num; ++i) { if (num % i == 0) { // 如果 i 是 num 的约数 if (i * i == num) { // 若 i 是 num 的平方根,只算一个约数 ++count; } else { // 否则 i 和 num/i 都是约数,算两个 count += 2; } } } return count; }

        int main() { int n; cin >> n; vector numbers(n); for (int i = 0; i < n; ++i) { cin >> numbers[i]; } // 先将第一个数作为初始的最大公约数 long long commonGCD = numbers[0]; // 遍历数组,计算所有数的最大公约数 for (int i = 1; i < n; ++i) { commonGCD = gcd(commonGCD, numbers[i]); } // 计算最大公约数的约数个数 int divisorCount = countDivisors(commonGCD); cout << divisorCount << endl; return 0; }

        #include #include using namespace std;

        // 计算两个数的最大公约数,使用欧几里得算法 long long gcd(long long a, long long b) { return b == 0 ? a : gcd(b, a % b); }

        // 计算一个数的约数个数 int countDivisors(long long num) { int count = 0; // 遍历从 1 到 num 的平方根 for (long long i = 1; i * i <= num; ++i) { if (num % i == 0) { // 如果 i 是 num 的约数 if (i * i == num) { // 若 i 是 num 的平方根,只算一个约数 ++count; } else { // 否则 i 和 num/i 都是约数,算两个 count += 2; } } } return count; }

        int main() { int n; cin >> n; vector numbers(n); for (int i = 0; i < n; ++i) { cin >> numbers[i]; } // 先将第一个数作为初始的最大公约数 long long commonGCD = numbers[0]; // 遍历数组,计算所有数的最大公约数 for (int i = 1; i < n; ++i) { commonGCD = gcd(commonGCD, numbers[i]); } // 计算最大公约数的约数个数 int divisorCount = countDivisors(commonGCD); cout << divisorCount << endl; return 0; }

        #include #include using namespace std;

        // 计算两个数的最大公约数,使用欧几里得算法 long long gcd(long long a, long long b) { return b == 0 ? a : gcd(b, a % b); }

        // 计算一个数的约数个数 int countDivisors(long long num) { int count = 0; // 遍历从 1 到 num 的平方根 for (long long i = 1; i * i <= num; ++i) { if (num % i == 0) { // 如果 i 是 num 的约数 if (i * i == num) { // 若 i 是 num 的平方根,只算一个约数 ++count; } else { // 否则 i 和 num/i 都是约数,算两个 count += 2; } } } return count; }

        int main() { int n; cin >> n; vector numbers(n); for (int i = 0; i < n; ++i) { cin >> numbers[i]; } // 先将第一个数作为初始的最大公约数 long long commonGCD = numbers[0]; // 遍历数组,计算所有数的最大公约数 for (int i = 1; i < n; ++i) { commonGCD = gcd(commonGCD, numbers[i]); } // 计算最大公约数的约数个数 int divisorCount = countDivisors(commonGCD); cout << divisorCount << endl; return 0; }

        #include #include using namespace std;

        // 计算两个数的最大公约数,使用欧几里得算法 long long gcd(long long a, long long b) { return b == 0 ? a : gcd(b, a % b); }

        // 计算一个数的约数个数 int countDivisors(long long num) { int count = 0; // 遍历从 1 到 num 的平方根 for (long long i = 1; i * i <= num; ++i) { if (num % i == 0) { // 如果 i 是 num 的约数 if (i * i == num) { // 若 i 是 num 的平方根,只算一个约数 ++count; } else { // 否则 i 和 num/i 都是约数,算两个 count += 2; } } } return count; }

        int main() { int n; cin >> n; vector numbers(n); for (int i = 0; i < n; ++i) { cin >> numbers[i]; } // 先将第一个数作为初始的最大公约数 long long commonGCD = numbers[0]; // 遍历数组,计算所有数的最大公约数 for (int i = 1; i < n; ++i) { commonGCD = gcd(commonGCD, numbers[i]); } // 计算最大公约数的约数个数 int divisorCount = countDivisors(commonGCD); cout << divisorCount << endl; return 0; }

        #include #include using namespace std;

        // 计算两个数的最大公约数,使用欧几里得算法 long long gcd(long long a, long long b) { return b == 0 ? a : gcd(b, a % b); }

        // 计算一个数的约数个数 int countDivisors(long long num) { int count = 0; // 遍历从 1 到 num 的平方根 for (long long i = 1; i * i <= num; ++i) { if (num % i == 0) { // 如果 i 是 num 的约数 if (i * i == num) { // 若 i 是 num 的平方根,只算一个约数 ++count; } else { // 否则 i 和 num/i 都是约数,算两个 count += 2; } } } return count; }

        int main() { int n; cin >> n; vector numbers(n); for (int i = 0; i < n; ++i) { cin >> numbers[i]; } // 先将第一个数作为初始的最大公约数 long long commonGCD = numbers[0]; // 遍历数组,计算所有数的最大公约数 for (int i = 1; i < n; ++i) { commonGCD = gcd(commonGCD, numbers[i]); } // 计算最大公约数的约数个数 int divisorCount = countDivisors(commonGCD); cout << divisorCount << endl; return 0; }

        #include #include using namespace std;

        // 计算两个数的最大公约数,使用欧几里得算法 long long gcd(long long a, long long b) { return b == 0 ? a : gcd(b, a % b); }

        // 计算一个数的约数个数 int countDivisors(long long num) { int count = 0; // 遍历从 1 到 num 的平方根 for (long long i = 1; i * i <= num; ++i) { if (num % i == 0) { // 如果 i 是 num 的约数 if (i * i == num) { // 若 i 是 num 的平方根,只算一个约数 ++count; } else { // 否则 i 和 num/i 都是约数,算两个 count += 2; } } } return count; }

        int main() { int n; cin >> n; vector numbers(n); for (int i = 0; i < n; ++i) { cin >> numbers[i]; } // 先将第一个数作为初始的最大公约数 long long commonGCD = numbers[0]; // 遍历数组,计算所有数的最大公约数 for (int i = 1; i < n; ++i) { commonGCD = gcd(commonGCD, numbers[i]); } // 计算最大公约数的约数个数 int divisorCount = countDivisors(commonGCD); cout << divisorCount << endl; return 0; }

        #include #include using namespace std;

        // 计算两个数的最大公约数,使用欧几里得算法 long long gcd(long long a, long long b) { return b == 0 ? a : gcd(b, a % b); }

        // 计算一个数的约数个数 int countDivisors(long long num) { int count = 0; // 遍历从 1 到 num 的平方根 for (long long i = 1; i * i <= num; ++i) { if (num % i == 0) { // 如果 i 是 num 的约数 if (i * i == num) { // 若 i 是 num 的平方根,只算一个约数 ++count; } else { // 否则 i 和 num/i 都是约数,算两个 count += 2; } } } return count; }

        int main() { int n; cin >> n; vector numbers(n); for (int i = 0; i < n; ++i) { cin >> numbers[i]; } // 先将第一个数作为初始的最大公约数 long long commonGCD = numbers[0]; // 遍历数组,计算所有数的最大公约数 for (int i = 1; i < n; ++i) { commonGCD = gcd(commonGCD, numbers[i]); } // 计算最大公约数的约数个数 int divisorCount = countDivisors(commonGCD); cout << divisorCount << endl; return 0; }

        #include #include using namespace std;

        // 计算两个数的最大公约数,使用欧几里得算法 long long gcd(long long a, long long b) { return b == 0 ? a : gcd(b, a % b); }

        // 计算一个数的约数个数 int countDivisors(long long num) { int count = 0; // 遍历从 1 到 num 的平方根 for (long long i = 1; i * i <= num; ++i) { if (num % i == 0) { // 如果 i 是 num 的约数 if (i * i == num) { // 若 i 是 num 的平方根,只算一个约数 ++count; } else { // 否则 i 和 num/i 都是约数,算两个 count += 2; } } } return count; }

        int main() { int n; cin >> n; vector numbers(n); for (int i = 0; i < n; ++i) { cin >> numbers[i]; } // 先将第一个数作为初始的最大公约数 long long commonGCD = numbers[0]; // 遍历数组,计算所有数的最大公约数 for (int i = 1; i < n; ++i) { commonGCD = gcd(commonGCD, numbers[i]); } // 计算最大公约数的约数个数 int divisorCount = countDivisors(commonGCD); cout << divisorCount << endl; return 0; }

        #include #include using namespace std;

        // 计算两个数的最大公约数,使用欧几里得算法 long long gcd(long long a, long long b) { return b == 0 ? a : gcd(b, a % b); }

        // 计算一个数的约数个数 int countDivisors(long long num) { int count = 0; // 遍历从 1 到 num 的平方根 for (long long i = 1; i * i <= num; ++i) { if (num % i == 0) { // 如果 i 是 num 的约数 if (i * i == num) { // 若 i 是 num 的平方根,只算一个约数 ++count; } else { // 否则 i 和 num/i 都是约数,算两个 count += 2; } } } return count; }

        int main() { int n; cin >> n; vector numbers(n); for (int i = 0; i < n; ++i) { cin >> numbers[i]; } // 先将第一个数作为初始的最大公约数 long long commonGCD = numbers[0]; // 遍历数组,计算所有数的最大公约数 for (int i = 1; i < n; ++i) { commonGCD = gcd(commonGCD, numbers[i]); } // 计算最大公约数的约数个数 int divisorCount = countDivisors(commonGCD); cout << divisorCount << endl; return 0; }

    • -2
      @ 2025-3-14 18:03:30
      tuuu
      
      • 1

      Information

      ID
      212
      Time
      2000ms
      Memory
      512MiB
      Difficulty
      3
      Tags
      (None)
      # Submissions
      80
      Accepted
      43
      Uploaded By