QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#535096 | #9229. Juliet Unifies Ones | SocialPanda | WA | 0ms | 3608kb | C++20 | 2.3kb | 2024-08-27 20:00:42 | 2024-08-27 20:00:42 |
Judging History
answer
#pragma GCC optimize("O3")
#pragma GCC optimize("unroll-loops")
#include <bits/stdc++.h>
//#define int long long
//#define LL long long
#define double long double
//#define lf Lf
#define fi first
#define se second
#define pb push_back
#define eb emplace_back
#define endl "\n"
#define PII pair<int,int>
#define Gheap priority_queue<int,vector<int>,greater<int>>
#define Lheap priority_queue<int>
#define MAXN 0x3f3f3f3f
#define MINN -0x3f3f3f3f
using namespace std;
//const int N=1e6+100,M=2*N;
//int e[N],w[M],h[M],ne[M],idx;
int qz0[100],qz1[100];
int hz0[100],hz1[100];
void solve()
{
int ans=MAXN;
string s;cin>>s;
int pk=-1;
for(int i=0;i<s.size();i++)
{
if(s[i]=='1') break;
pk=i;
}
for(int i=0;i<=pk;i++) {s.erase(s.begin());}
pk=s.size();
for(int i=s.size()-1;i>=0;i--)
{
if(s[i]=='1') break;
pk=i;
}
for(int i=s.size()-1;i>=pk;i--) s.erase(s.end()-1);
for(int i=0;i<s.size();i++)
{
qz0[i]=qz0[i-1];
qz1[i]=qz1[i-1];
if(s[i]=='0') qz0[i]++;
else qz1[i]++;
}
for(int i=s.size()-1;i>=0;i--)
{
hz0[i]=hz0[i+1];
hz1[i]=hz1[i+1];
if(s[i]=='0') hz0[i]++;
else hz1[i]++;
}
vector<PII> v;
int head=0,tail=0;
for(int i=0;i<s.size();i++)
{
if(i==s.size()-1 or (s[i]=='1' and s[i+1]=='0'))
{
tail = i;
//cout<<head<<' '<<tail<<endl;
v.pb({head,tail});
}
if(s[i]=='0' and s[i+1]=='1')
{
head=i+1;
}
}
for(int i=0;i<v.size();i++)
{
for(int j=i;j<v.size();j++)
{
int ll = v[i].fi;
int rr = v[j].se;
int zuo0 = qz0[ll-1];
int zuo1 = qz1[ll-1];
int you0 = hz0[rr+1];
int you1 = hz1[rr+1];
int mid = qz0[rr]-qz0[ll-1];
int num = mid+min(zuo0,zuo1)+min(you0,you1);
ans=min(ans,num);
}
}
cout<<ans<<endl;
}
/*
11011001
1111000111000111010101
*/
int main()
{
std::ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int tt=1;
//cin >> tt;
while(tt--) solve();
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 0ms
memory: 3536kb
input:
00011011001
output:
2
result:
ok 1 number(s): "2"
Test #2:
score: 0
Accepted
time: 0ms
memory: 3548kb
input:
11101111111111111101001011110111111110011101010110
output:
11
result:
ok 1 number(s): "11"
Test #3:
score: 0
Accepted
time: 0ms
memory: 3608kb
input:
00000000100000000000100000010001000
output:
3
result:
ok 1 number(s): "3"
Test #4:
score: -100
Wrong Answer
time: 0ms
memory: 3592kb
input:
00000000000000000000000000000000000000000000000000
output:
1061109567
result:
wrong answer 1st numbers differ - expected: '0', found: '1061109567'