| Task: | Inversions |
| Sender: | KnowYourArchitecture |
| Submission time: | 2018-05-26 11:22:19 +0300 |
| Language: | C++ |
| Status: | READY |
| Result: | ACCEPTED |
| test | verdict | time | |
|---|---|---|---|
| #1 | ACCEPTED | 0.04 s | details |
| #2 | ACCEPTED | 0.04 s | details |
| #3 | ACCEPTED | 0.05 s | details |
| #4 | ACCEPTED | 0.04 s | details |
| #5 | ACCEPTED | 0.06 s | details |
Code
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef __int128 lll;
/*
lll powmod(lll a, lll p, lll mod) {
if(p==0) return 1;
if(p%2==0) {
a=powmod(a,p/2,mod);
return (a*a)%mod;
}
}
return (a*powmod(a,p-1,mod))%mod);
}
void step(ll&x, ll n, ll c){x=(lll)((lll)x*(lll)x+(lll)c)%n;}
void rFactor(ll n, map<ll, ll>& r) {
while(n%2==0) {
n/=2;r[2]++;
}
if(n==1) return;
if(isPrime(n))r[n]++;
else {
while(1){
ll x=rand()%n;ll y=x;
ll c=rand()%n;
for(ll i=0;i*i<=n;i++){
step(x,n,c);step(x,n,c);step(y,n,c);
ll g=__gcd(max(x,y)-min(x,y),n);
if(g==n)break;
else if(g>1) {
rFactor(n/g, r);
rFactor(g,r);
return;
}
}
}
}
}
map<ll,ll> factor(ll n){
map<ll,ll> ret;
if(n>1) rFactor(n,ret);
return ret;
}
*/
int main(){
string a;
cin>>a;
ll ra=0;
ll rb=0;
ll i=0;
for(auto& v : a){
if((v-'0') == (i&1)) ra++;
else rb++;
++i;
}
cout<<min(ra,rb)<<'\n';
}
Test details
Test 1
Verdict: ACCEPTED
| input |
|---|
| 000000000000000000000000000000... |
| correct output |
|---|
| 500000 |
| user output |
|---|
| 500000 |
Test 2
Verdict: ACCEPTED
| input |
|---|
| 111111111111111111111111111111... |
| correct output |
|---|
| 500000 |
| user output |
|---|
| 500000 |
Test 3
Verdict: ACCEPTED
| input |
|---|
| 010101010101010101010101010101... |
| correct output |
|---|
| 0 |
| user output |
|---|
| 0 |
Test 4
Verdict: ACCEPTED
| input |
|---|
| 101010101010101010101010101010... |
| correct output |
|---|
| 0 |
| user output |
|---|
| 0 |
Test 5
Verdict: ACCEPTED
| input |
|---|
| 110101011010110100100111110110... |
| correct output |
|---|
| 499476 |
| user output |
|---|
| 499476 |
