1352D - Alice Bob and Candies - CodeForces Solution


implementation *1300

Please click on ads to support us..

Python Code:

t = int(input())

def solve():
    n = int(input())
    seq = list(map(int, input().split()))
    Ascore = 0
    Bscore = 0
    Aprev = 0
    Bprev = 0
    countMoves = 0
    AliceTUrn = True
    while n > 0:
        cur = 0
        if AliceTUrn:
            while cur <= Bprev and seq != []:
                cur += seq.pop(0)
                n -= 1
            Aprev = cur
            Ascore += cur
        else:
            while cur <= Aprev and seq != []:
                cur += seq.pop(-1)
                n -= 1
            Bprev = cur
            Bscore += cur
        AliceTUrn = not AliceTUrn
        countMoves += 1

    print(countMoves, Ascore, Bscore)





def yes(t):
    for _ in range(t):
        solve()

yes(t)

C++ Code:

#include <bits/stdc++.h>
using namespace std;
 
int main() {
    int t;
    cin>>t;
    while(t--){
        int n ;
        cin>>n;
        vector<long long > v(n);
        for(int i=0;i<n;i++){
            cin>>v[i];
        }
        int start = 0;
        int last = n-1;
        int moves = 0;
        int pre = 0;
        long long alice = 0;
        long long bob = 0;
        int chance = 0;
        
        while(last >= start){
            if(chance==0){
                long long temp = 0;
                while(start <= last && temp <= pre){
                    temp+=v[start++];
                }
                pre = temp;
                alice+=temp;
                chance = 1;
                
            }
            else{
                long long temp2 = 0;
                while(start <= last && temp2 <= pre){
                    temp2+=v[last--];
                }
                pre = temp2;
                bob+=temp2;
                chance = 0;
            }
            
            moves++;
        }
        cout<<moves<<" "<<alice<<" "<<bob<<endl;
    }
}


Comments

Submit
0 Comments
More Questions

1529A - Eshag Loves Big Arrays
19. Remove Nth Node From End of List
925. Long Pressed Name
1051. Height Checker
695. Max Area of Island
402. Remove K Digits
97. Interleaving String
543. Diameter of Binary Tree
124. Binary Tree Maximum Path Sum
1465. Maximum Area of a Piece of Cake After Horizontal and Vertical Cuts
501A - Contest
160A- Twins
752. Open the Lock
1535A - Fair Playoff
1538F - Interesting Function
1920. Build Array from Permutation
494. Target Sum
797. All Paths From Source to Target
1547B - Alphabetical Strings
1550A - Find The Array
118B - Present from Lena
27A - Next Test
785. Is Graph Bipartite
90. Subsets II
1560A - Dislike of Threes
36. Valid Sudoku
557. Reverse Words in a String III
566. Reshape the Matrix
167. Two Sum II - Input array is sorted
387. First Unique Character in a String