Markers and Caps CodeChef Solution

Problem -Markers and Caps CodeChef Solution

This website is dedicated for CodeChef solution where we will publish right solution of all your favourite CodeChef problems along with detailed explanatory of different competitive programming concepts and languages.

Markers and Caps CodeChef Solution in C++14

#include <bits/stdc++.h>
#define int long long
#define endl '\n'
#define fi first
#define se second
#define pii pair<int,int>
#define IOS ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
using namespace std;

const int MAX=2e5+1;
const int inf=1e9+5;

int add(int a,int b,int MOD){ return ((a%MOD)+(b%MOD))%MOD;}
int mul(int a,int b,int MOD){ return ((a%MOD)*(b%MOD))%MOD;}
int sub(int x,int y,int MOD){ return ((x - y) % MOD) + ((x >= y) ? 0 : MOD);}
int ceil_div(int a,int b) {return a%b==0?a/b:(a/b)+1;}

int be_itr(int x,int n,int MOD)
{
    int res=1;
    while(n)
    {
        if(n%2==1){
            res*=x;
            res%=MOD;
        }
        n/=2;
        x*=x;
        x%=MOD;
    }
    return res;
}

const int dx[4] = {1, -1, 0, 0};
const int dy[4] = {0, 0, 1, -1};
const char delta_dir[4] = {'D', 'U', 'R', 'L'};


void solve()
{
    int n,mxf=1;cin>>n;
    map<int,int>mp;
    vector<pii>v(n);
    vector<int>b(n);
    bool ok=true;
    for(int i=0;i<n;i++)
    {
        cin>>v[i].fi;
        v[i].se=i;
        if(mp.find(v[i].fi)!=mp.end())
        {
            if(mp[v[i].fi]+1<=(n/2)){mp[v[i].fi]++;mxf=max(mxf,mp[v[i].fi]);}
            else {ok=false;}
        }
        else {mp[v[i].fi]++;}
    }
    if(n==1){cout<<"NO"<<endl;return;}
    if(!ok){cout<<"NO"<<endl;return;}
    cout<<"YES"<<endl;
    sort(v.begin(),v.end());
    for(int i=0;i<n;i++)
    {
        int y=(i+mxf)%n;
        b[v[y].se]=v[i].fi;
    }
    for(int i=0;i<n;i++)cout<<b[i]<<" ";
    cout<<endl;
}

int32_t main()
{
    IOS;
    int t=1;cin>>t;
    while(t--)
    {
        solve();
    }
    return 0;
}

Markers and Caps CodeChef Solution in PYTH 3

# cook your dish here
# cook your dish here
from collections import Counter,defaultdict

for i in range(int(input())):
    n=int(input())
    arr=list(map(int,input().split()))
    coun=Counter(arr)
    check=True

    for j in coun:
        if coun[j]>n//2:
            print("No")
            check=False
            break




    if check==True:
        print("Yes")
        narr=sorted(arr)
        dic=defaultdict()
        j=0
        for j in range(len(narr)):
            if narr[j] not in dic:
                dic[narr[j]]=j
        ans=[0]*n
        for j in range(len(arr)):
            ans[j]=narr[(dic[arr[j]]+n//2)%n]
            if coun[arr[j]]!=1:
                dic[arr[j]]+=1
        print(*ans)

Markers and Caps CodeChef Solution in JAVA

/* package codechef; // don't place package name! */

import java.io.*;
import java.util.*;
class marcaps 
{
    int val,pos;
    public marcaps(int v,int p)
    {
        this.val=v;
        this.pos=p;
    }
    public static void main(String args[])throws IOException
    {
        Reader sc=new Reader();
        int t=sc.nextInt();
        for(int z=1;z<=t;z++)
        {
            int n=sc.nextInt();
            marcaps arr[]=new marcaps[n];
            for(int i=0;i<n;i++)
            {
                arr[i]=new marcaps(sc.nextInt(),i);
            }
            Arrays.sort(arr,new Comparator<marcaps>(){
                public int compare(marcaps ob1,marcaps ob2)
                {
                    return Integer.compare(ob1.val,ob2.val);
                }
            });
            int f=0,ht=n/2;
            int temp[]=new int[n];
            for(int i=0;i<n;i++) {
                if(arr[i].val==arr[(i+ht)%n].val)
                {
                    f=1;
                    break;
                }
                temp[arr[i].pos]=arr[(i+ht)%n].val;
                
            }
            if(f==1)
                System.out.println("No");
            else
            {
                System.out.println("Yes");
                for(int i=0;i<n;i++)
                {
                    System.out.print(temp[i]+" ");
                }
                System.out.println();
            }
        }
    }
}
class Reader {
		final private int BUFFER_SIZE = 1 << 16;
		private DataInputStream din;
		private byte [] buffer;
		private int bufferPointer, bytesRead;
		
		public Reader () {
			din = new DataInputStream (System.in);
			buffer = new byte[BUFFER_SIZE];
			bufferPointer = bytesRead = 0;
		}	public Reader (String file_name) throws IOException {
			din = new DataInputStream (new FileInputStream (file_name));
			buffer = new byte[BUFFER_SIZE];
			bufferPointer = bytesRead = 0;
		}
		
		public String readLine () throws IOException {
			byte [] buf = new byte[1024];
			int cnt = 0, c;
			while ((c = read ()) != -1) {
				if (c == '\n')
					break;
				buf[cnt++] = (byte) c;
			}
			return new String (buf, 0, cnt);
		}
		
		public int nextInt () throws IOException {
			int ret = 0;
			byte c = read ();
			while (c <= ' ')
				c = read ();
			boolean neg = (c == '-');
			if (neg)
				c = read ();
			do {
				ret = ret * 10 + c - '0';
			} while ((c = read ()) >= '0' && c <= '9');
			if (neg)
				return -ret;
			return ret;	}
		
		public long nextLong () throws IOException {
			long ret = 0;
			byte c = read ();
			while (c <= ' ')
				c = read ();
			boolean neg = (c == '-');
			if (neg)
				c = read ();
			do {
				ret = ret * 10 + c - '0';
			} while ((c = read ()) >= '0' && c <= '9');
			if (neg)
				return -ret;
			return ret;
		}
		
		public double nextDouble () throws IOException {
			double ret = 0, div = 1;
			byte c = read ();
			while (c <= ' ')
				c = read ();
			boolean neg = (c == '-');
			if (neg)
				c = read ();
			do {
				ret = ret * 10 + c - '0';
			} while ((c = read ()) >= '0' && c <= '9');
			if (c == '.')
				while ((c = read ()) >= '0' && c <= '9')
					ret += (c - '0') / (div *= 10);
			if (neg)
				return -ret;	return ret;
		}
		
		private void fillBuffer () throws IOException {
			bytesRead = din.read (buffer, bufferPointer = 0, BUFFER_SIZE);
			if (bytesRead == -1)
				buffer[0] = -1;
		}
		
		private byte read () throws IOException {
			if (bufferPointer == bytesRead)
				fillBuffer ();
			return buffer[bufferPointer++];
		}
		
		public void close () throws IOException {
			if (din == null)
				return;
			din.close ();
		}
	}

Markers and Caps CodeChef Solution in PYPY 3

from collections import Counter,defaultdict

for i in range(int(input())):
    n=int(input())
    arr=list(map(int,input().split()))
    coun=Counter(arr)
    check=True

    for j in coun:
        if coun[j]>n//2:
            print("No")
            check=False
            break




    if check==True:
        print("Yes")
        narr=sorted(arr)
        dic=defaultdict()
        j=0
        for j in range(len(narr)):
            if narr[j] not in dic:
                dic[narr[j]]=j
        ans=[0]*n
        for j in range(len(arr)):
            ans[j]=narr[(dic[arr[j]]+n//2)%n]
            if coun[arr[j]]!=1:
                dic[arr[j]]+=1
        print(*ans)

Markers and Caps CodeChef Solution in PYTH

t = int(raw_input())
for i in range(t):
	N = int(raw_input())
	st = raw_input().split()
	A = []
	for k in range(N):
		n = int(st[k])
		A.append([n,k])
	# endfor k
	A.sort()
	valid = True
	mx = 1
	cnt = 1
	n = A[0][0]
	p = 1
	while p < N:
		if A[p][0] == n:
			cnt += 1
		else:
			if cnt > mx:
				mx = cnt
			# endif
			cnt = 1
			n = A[p][0]
		# endif
		p += 1
	# endwhile
	if cnt > mx:
		mx = cnt
	# endif
	if 2*mx > N:
		valid = False
	# endif
	if valid:
		print 'Yes'
		d = N/2
		R = [0 for x in range(N)]
		for k in range(N):
			n = A[k][1]
			c = A[(k+d)%N][0]
			R[n] = c
		# endfor k
		st = ''
		for r in R:
			st += str(r) + ' '
		# endfor r
		print st
	else:
		print 'No'
	# endif
# endfor i
Markers and Caps CodeChef Solution Review:

In our experience, we suggest you solve this Markers and Caps CodeChef Solution and gain some new skills from Professionals completely free and we assure you will be worth it.

If you are stuck anywhere between any coding problem, just visit Queslers to get the Markers and Caps CodeChef Solution.

Find on CodeChef

Conclusion:

I hope this Markers and Caps CodeChef Solution would be useful for you to learn something new from this problem. If it helped you then don’t forget to bookmark our site for more Coding Solutions.

This Problem is intended for audiences of all experiences who are interested in learning about Programming Language in a business context; there are no prerequisites.

Keep Learning!

More Coding Solutions >>

Cognitive Class Answer

CodeChef Solution

Microsoft Learn

Leave a Reply

Your email address will not be published. Required fields are marked *