/ SeriousOJ /

Record Detail

Accepted


  
# Status Time Cost Memory Cost
#1 Accepted 3ms 532.0 KiB
#2 Accepted 43ms 552.0 KiB
#3 Accepted 40ms 556.0 KiB
#4 Accepted 49ms 436.0 KiB
#5 Accepted 21ms 532.0 KiB
#6 Accepted 18ms 532.0 KiB
#7 Accepted 12ms 788.0 KiB
#8 Accepted 5ms 576.0 KiB
#9 Accepted 5ms 532.0 KiB
#10 Accepted 5ms 532.0 KiB
#11 Accepted 4ms 532.0 KiB
#12 Accepted 5ms 532.0 KiB
#13 Accepted 6ms 532.0 KiB
#14 Accepted 6ms 708.0 KiB
#15 Accepted 6ms 532.0 KiB
#16 Accepted 16ms 700.0 KiB
#17 Accepted 16ms 704.0 KiB
#18 Accepted 14ms 532.0 KiB
#19 Accepted 26ms 532.0 KiB
#20 Accepted 54ms 532.0 KiB

Code

#include<bits/stdc++.h>
using namespace std;
#define ll long long int 
int main()
{
    ll tc;
    cin>>tc;
    while(tc--)
    {
        ll n;
        cin>>n;
        map<ll,ll>mp;
        vector<ll>v(n);
        for(int i=0;i<n;i++)
        {
            cin>>v[i]; mp[v[i]]++;
        }
        ll o=mp[1];
        ll z=mp[0];
        ll m=mp[-1];
        ll ans=0;
        while(1)
        {
            ll x=0;
            if(m>=2 && o>=1)
            {
                ans++;
                m-=2;
                o-=1;
            }
            else if(o>=3)
            {
                ans++;
                o-=3;
            }
            else if(m>=2 && z>=1)
            {
                z--;
                m-=2;
            }
            else if(m>=1 && o>=1 && z>=1)
            {
                m--;
                o--;
                z--;
            }
            else if(m>=1 && z>=2)
            {
                m--;
                z-=2;
            }
            else if(z>=2 && o>=1)
            {
                z-=2;
                o--;
            }
            else if(z>=1 && o>=2)
            {
                z--;
                o-=2;
            }
            else if(m>=1 && o>=2)
            {
                ans--;
                m--;
                o-=2;
            }
            else if(m>=3)
            {
                ans--;
                m-=3;
            }
            else
                break;
            
        }
        cout<<ans<<endl;
        
    }
}

Information

Submit By
Type
Submission
Problem
P1152 Special Array
Language
C++17 (G++ 13.2.0)
Submit At
2025-01-03 05:54:51
Judged At
2025-01-03 05:54:51
Judged By
Score
100
Total Time
54ms
Peak Memory
788.0 KiB