/ SeriousOJ /

Record Detail

Accepted


  
# Status Time Cost Memory Cost
#1 Accepted 1ms 512.0 KiB
#2 Accepted 8ms 756.0 KiB
#3 Accepted 2ms 324.0 KiB
#4 Accepted 2ms 320.0 KiB
#5 Accepted 1ms 320.0 KiB

Code

#include<bits/stdc++.h>
using namespace std;
#define fast ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
#define dbg(a,b,c,d) cerr<<a<<"  "<<b<<"  "<<c<<"  "<<d<<endl;
#define kill(a) {cout<<a<<endl;continue;}
#define KILL(a) {cout<<a<<endl;return 0;}
#define debug cerr<<"Error Found"<<endl;
#define mem(a,b) memset(a,b,sizeof(a))
#define lcm(a, b) (a/__gcd(a,b))*b
#define w(t) cin>>t;while(t--)
#define pi  2 * acos(0.0)
#define endl "\n"
int t, cs = 0;
const int mxn = 1e4 + 3, mod = 1e9 + 7;

int32_t main()
{

    //fast
    w(t)
    {
        int n;
        cin >> n;
        string s;
        cin >> s;
        int one = 0, step = 0, zero = 0, take = 0;
        string ss = s;
        sort(ss.begin(), ss.end());
        for(int i = n - 1; ~i; i--)
        {

            zero += s[i] == '0';
            if(s[i] == ss[i])continue;
            if(s[i] == '1')step += (zero > 0);
        }
        sort(ss.rbegin(), ss.rend());
        for(int i = n - 1; ~i; i--)
        {

            one += s[i] == '1';
            if(ss[i] == s[i])continue;
            if(s[i] == '0')take += (one > 0);
        }
       
        cout << min(step, take) << endl;
    }
}

Information

Submit By
Type
Submission
Problem
P1016 Swap sort
Language
C++17 (G++ 13.2.0)
Submit At
2024-11-08 09:32:31
Judged At
2024-11-11 02:22:49
Judged By
Score
100
Total Time
8ms
Peak Memory
756.0 KiB