1620D - Exact Change - CodeForces Solution


brute force constructive algorithms greedy *2000

Please click on ads to support us..

C++ Code:

#include<bits/stdc++.h>
using namespace std;

const int INF=1e9;

int solve(vector<int> a, vector<int> x) {
  int ret = 0;
  for (int ai: a) {
    for (int xi: x) {
      if (ai>=xi and (ai-xi)%3==0) {
        ai -= xi;
      }
    }
    if (ai%3==0) {
      ret = max(ret, ai/3);
    }
    else {
      return INF;
    }
  }
  return ret;
}

int main(){
  ios::sync_with_stdio(0), cin.tie(0);
  
  int tc;  cin >> tc;
  while (tc--) {
    int n;  cin >> n;
    vector<int> a(n);
    for (int i = 0; i < n; ++i) {
      cin >> a[i];
    }

    int ans = INF;
    ans = min(ans, solve(a, {}));
    ans = min(ans, solve(a, {1})+1);
    ans = min(ans, solve(a, {2})+1);
    ans = min(ans, solve(a, {3, 2, 1})+2);  // 3=2+1
    ans = min(ans, solve(a, {4, 2, 2})+2);  // 4=2+2

    cout << ans << "\n";
  }

  return 0;
}


Comments

Submit
0 Comments
More Questions

507B - Amr and Pins
379A - New Year Candles
1154A - Restoring Three Numbers
750A - New Year and Hurry
705A - Hulk
492B - Vanya and Lanterns
1374C - Move Brackets
1476A - K-divisible Sum
1333A - Little Artem
432D - Prefixes and Suffixes
486A - Calculating Function
1373B - 01 Game
1187A - Stickers and Toys
313B - Ilya and Queries
579A - Raising Bacteria
723A - The New Year Meeting Friends
302A - Eugeny and Array
1638B - Odd Swap Sort
1370C - Number Game
1206B - Make Product Equal One
131A - cAPS lOCK
1635A - Min Or Sum
474A - Keyboard
1343A - Candies
1343C - Alternating Subsequence
1325A - EhAb AnD gCd
746A - Compote
318A - Even Odds
550B - Preparing Olympiad
939B - Hamster Farm