c++ (zadanie w załączniku)

C Zadanie W Załączniku class=

Odpowiedź :

Odpowiedź:

#include <iostream>

#include <vector>

#include <numeric>

int main() {

   int n, a;

   std::cin >> n;

   std::vector<int> nuts(n);

   for (int i = 0; i < n; i++) {

       std::cin >> a;

       nuts[i] = a;

   }

   

   int chipCounter = 0;

   int daleCounter = 0;

   int sum = std::accumulate(nuts.begin(), nuts.end(), 0);

   int chipSum, daleSum;

   if (sum % 2 == 0) {

       chipSum = sum / 2;

       daleSum = sum / 2;

   } else {

       chipSum = sum / 2 + 1;

       daleSum = sum - chipSum;

   }

   int chipCurrent = 0;

   int daleCurrent = 0;

   for (int i = 0; i < nuts.size(); i++) {

       if (chipCurrent < chipSum) {

           chipCurrent += nuts[i];

           chipCounter++;

       }

       if (daleCurrent + nuts[i] <= daleSum) {

           daleCurrent += nuts[nuts.size() - 1 - i];

           daleCounter++;

       }

   }

   std::cout << chipCounter << std::endl;

   std::cout << daleCounter << std::endl;

   return 0;

}

Wyjaśnienie:

Nie jestem pewny, czy dla każdego przykładu będzie działać, ale dla tych przykładowych działa