不知道哪里问题
查看原帖
不知道哪里问题
1083860
Bobwang119楼主2024/1/23 15:38
#include<bits/stdc++.h>

using namespace std;

long long arr01[1010];

int main()
{
   

   int n;
   
   unsigned long long sumJ = 0, sumB = 0, sumn = 0;
   
   cin >> n;
  
   for (int i = 0; i < n; ++i)
   {
       cin >> arr01[i];
       sumn += arr01[i];
   }


   for (int i = 0; i < n; ++i)
   {
       if (i % 2 == 0) 
       {
           bool flag = 0;
           
           for (int j = 0; j < n; ++j)
           {
               if (arr01[j] != 0 && arr01[j] < sumJ)
               {
                   flag = 1;
                   break;
               }
           }

           if (flag == 1)
           {
               long long maxn = 0;
               int maxInd = 0;
               
               for (int j = 0; j < n; ++j)
               {
                   if (arr01[j] < sumJ && arr01[j] > maxn)
                   {
                       maxn = arr01[j];
                       maxInd = j;
                   }
               }

               sumJ += maxn; 
               arr01[maxInd] = 0; 
           }
           else
           {
               long long minn = LLONG_MAX;
               int minInd = -1;
               for (int j = 0; j < n; ++j)
               {
                   if (arr01[j] > sumJ && arr01[j] < minn)
                   {
                       minn = arr01[j];
                       minInd = j;
                   }
               }
               sumJ += minn; 
               arr01[minInd] = 0; 
           }


       }
       else 
        {
              bool flag = 0;
           
           for (int j = 0; j < n; ++j)
           {
               if (arr01[j] != 0 && arr01[j] < sumB)
               {
                   flag = 1;
                   break;
               }
           }

           if (flag == 1)
           {
               long long maxn = 0;
               int maxInd = 0;
              
               for (int j = 0; j < n; ++j)
               {
                   if ( arr01[j] < sumB && arr01[j] > maxn)
                   {
                       maxn = arr01[j];
                       maxInd = j;
                   }
               }

               sumB += maxn; 
               arr01[maxInd] = 0; 
           }
           else
           {
               long long minn = LLONG_MAX;
               int minInd = -1;
             
               for (int j = 0; j < n; ++j)
               {
                   if (arr01[j] > sumB && arr01[j] < minn)
                   {
                       minn = arr01[j];
                       minInd = j;
                   }
               }
               sumB += minn; 
               arr01[minInd] = 0; 

            }

        }

   }


cout << sumJ << ' ' << sumB << '\n';

   return 0;
}
2024/1/23 15:38
加载中...