Dmaxiya

T710668 C. 孤独的数字三 [Hello World 2026 蓝桥杯选拔赛]

Dec 21st, 2025
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.96 KB | None | 0 0
  1. #include <stdio.h>
  2.  
  3. #define maxn 100100
  4. int n, ans, mx2;
  5. int num[maxn], mx1[3] = {0};
  6.  
  7. int max(int a, int b) {
  8.     return a > b ? a : b;
  9. }
  10.  
  11. void add(int x) {
  12.     int minIdx = 0;
  13.     int i;
  14.     for (i = 0; i < 3; ++i) {
  15.         if (mx1[i] < mx1[minIdx]) {
  16.             minIdx = i;
  17.         }
  18.     }
  19.     if (x > mx1[minIdx]) {
  20.         mx1[minIdx] = x;
  21.     }
  22. }
  23.  
  24. int main() {
  25.     scanf("%d", &n);
  26.     ans = 0;
  27.     mx2 = 0;
  28.     int i;
  29.     for (i = 1; i <= n; ++i) {
  30.         scanf("%d", &num[i]);
  31.         if (num[i] % 3 == 2) {
  32.             mx2 = max(mx2, num[i]);
  33.         }
  34.         if (num[i] % 3 == 1) {
  35.             add(num[i]);
  36.         }
  37.     }
  38.     if (mx2 != 0 && mx1[0] != 0) {
  39.         ans = max(ans, mx2 + max(max(mx1[0], mx1[1]), mx1[2]));
  40.     }
  41.     if (mx1[2] != 0) {
  42.         ans = max(ans, mx1[0] + mx1[1] + mx1[2]);
  43.     }
  44.     if (ans == 0) {
  45.         printf("impossible\n");
  46.     } else {
  47.         printf("%d\n", ans);
  48.     }
  49.  
  50.     return 0;
  51. }
Advertisement
Add Comment
Please, Sign In to add comment