371A - K-Periodic Array - CodeForces Solution


greedy implementation math *1000

Please click on ads to support us..

Python Code:

n, k = map(int, input().split())
a = list(map(int, input().split()))

count = 0
if(len(a)%k==0):    
    for i in range(k):
        b = a[i::k]
        count += min(b.count(1),b.count(2))
print(count)

C++ Code:

#include<bits/stdc++.h>
using namespace std;
const int N=1e7+10;
#define ll long long int
#define pb push_back
//#define getUnique(v) {sort(v.begin(),v.end());v.erase(unique(v.begin(),v.end()),v.end());}
ll gcd(ll a,ll b){if(a%b==0)return b;return gcd(b,a%b);}
ll binexp(ll n,ll p){ll res = 1;while (p>0){if(p&1)res=res*n;n=n*n;p>>=1;}return res;}
void solve(){
    ll n,k;cin>>n>>k;
    ll a[n];
    for(int i=1;i<=n;i++){
        cin>>a[i];
    }
    ll ans=0;//k<=n/2
    for(int i=1;i<=k;i++){
        int one=0,two=0;
        for(int j=i;j<=n;j+=k){
            if(a[j]==1)one++;
            else two++;
        }
        ans+=min(one,two);
    }
    cout<<ans;
}
int main(){
#ifndef ONLINE_JUDGE
freopen("input.txt", "r", stdin);
freopen("error.txt", "w", stderr);
freopen("output.txt", "w", stdout);
#endif
    int t;t=1;
    while(t--)
        solve();
}


Comments

Submit
0 Comments
More Questions

454A - Little Pony and Crystal Mine
2A - Winner
1622B - Berland Music
1139B - Chocolates
1371A - Magical Sticks
1253A - Single Push
706B - Interesting drink
1265A - Beautiful String
214A - System of Equations
287A - IQ Test
1108A - Two distinct points
1064A - Make a triangle
1245C - Constanze's Machine
1005A - Tanya and Stairways
1663F - In Every Generation
1108B - Divisors of Two Integers
1175A - From Hero to Zero
1141A - Game 23
1401B - Ternary Sequence
598A - Tricky Sum
519A - A and B and Chess
725B - Food on the Plane
154B - Colliders
127B - Canvas Frames
107B - Basketball Team
245A - System Administrator
698A - Vacations
1216B - Shooting
368B - Sereja and Suffixes
1665C - Tree Infection