CF 723 Problem C2

Problem - C2 - Codeforces

Submission 1
#include <bits/stdc++.h>
using namespace std;
#pragma GCC target ("avx2")
#pragma GCC optimization ("O3")
#pragma GCC optimization ("unroll-loops")
//#pragma GCC optimize("Ofast")
// #pragma GCC optimize "trapv"

#define ll long long 
#define lld long double


int32_t main() {
	// your code goes here
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    lld t;
    //cin>>t;
    t=1;
    while(t--)
    {
        int n;
        cin>>n;
        
        int arr[n+1];
        for(int i=1;i<=n;i++)
        cin>>arr[i];
        
        multiset <int> s;
        ll sum=0;
        
        
        for(int i=1;i<=n;i++)
        {
            if(arr[i]>=0)
            {
                sum+=arr[i];
                s.insert(arr[i]);
            }
            else
            {
                if(sum+arr[i]>=0)
                {
                    sum+=arr[i];
                    s.insert(arr[i]);
                }
                else
                {
                    ll val=*s.begin();
                    
                    if(sum-val+arr[i]>0)
                    {
                        s.erase(s.find(val));
                        s.insert(arr[i]);
                        sum=sum-val+arr[i];
                    }
                }
            }
        }
        cout<<s.size();
    }
}
Submission 2
#include <bits/stdc++.h>
using namespace std;
#pragma GCC target ("avx2")
#pragma GCC optimization ("O3")
#pragma GCC optimization ("unroll-loops")
//#pragma GCC optimize("Ofast")
// #pragma GCC optimize "trapv"

#define ll long long 
#define lld long double


int32_t main() {
	// your code goes here
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    lld t;
    //cin>>t;
    t=1;
    while(t--)
    {
        int n;
        cin>>n;
        
        int arr[n+1];
        for(int i=1;i<=n;i++)
        cin>>arr[i];
        
        multiset <int> s;
        ll sum=0;
        
        
        for(int i=1;i<=n;i++)
        {
            if(arr[i]>=0)
            {
                sum+=arr[i];
                s.insert(arr[i]);
            }
            else
            {
                if(sum+arr[i]>=0)
                {
                    sum+=arr[i];
                    s.insert(arr[i]);
                }
                else
                {
                    auto it=s.begin();
                    ll val=*it;
                    if(val<arr[i])
                    {
                        s.erase(it);
                        s.insert(arr[i]);
                        sum=sum-val+arr[i];
                    }
                }
            }
        }
        cout<<s.size();
    }
}

Both submission only differs only at last if condition. Both seems same to me. But submission 1 gives WA on TC3 while submission 2 is AC.

Submission 1 gives 1784 instead of 1785 on TC3

Please provide some TC so that I can see difference.

1 Like
6
10 -4 -8 -3 10 -5

CORRECT_OUTPUT: 5
SUB_1: 4

3 Likes

Same thing happened with me,
WA on TC5 - > Submission #117644408 - Codeforces
AC → Submission #117658056 - Codeforces

wasted my 30 min