CHEGLOVE - Editorial

PROBLEM LINK:

Div1, Div2

Practice

Author: Praveen Dhinwa

Tester: Triveni Mahatha

Editorialist: Adarsh Kumar

DIFFICULTY:

Simple

PREREQUISITES:

None

PROBLEM:

You are given two array’s L and G of N integers. You need to check if L[i] \le G[i] for all 1 \le i \le N. You need to repeat this task after reversing G too.

EXPLANATION:

This problem is really simple. You just need to implement whatever the problem states.

For chef to wear the glove in “front” position, check if L[i] \le G[i] for all 1 \le i \le N. This can be done using a linear traversal of both the array. Similarly, for chef to wear the glove in “back” position just reverse the array G and check if L[i] \le G[i] for all 1 \le i \le N.

Now you just need to output “front”, “back”, “both”, or “none” depending upon the conditions fulfilled.

Time Complexity:

O(N)

AUTHOR’S AND TESTER’S SOLUTIONS

Setter’s solution

Tester’s solution

#include<stdio.h>
int main()
{
int i,T,count;
scanf("%d",&T);
for(i=0;i<T;i++)
int j,k,n;
scanf("%d",&n);
for(j=0;j<n;j++)
{
for(k=0;k<n;k++)
{
if(j==n)
count=2;
}
for(k=n-1;k>=0;k–)
{
if(j==n)
count++;
}
if(count==0)
printf(“none\n”);
if(count==1)
printf(“back\n”);
if(count==2)
printf(“front\n”);
if(count==3)
printf(“equal”\n);
}
return 0;
}

#include<stdio.h>
int main()
{
int i,T,count;
scanf("%d",&T);
for(i=0;i<T;i++)
int j,k,n;
scanf("%d",&n);
for(j=0;j<n;j++)
{
for(k=0;k<n;k++)
{
if(j==n)
count=2;
}
for(k=n-1;k>=0;k–)
{
if(j==n)
count++;
}
if(count==0)
printf(“none\n”);
if(count==1)
printf(“back\n”);
if(count==2)
printf(“front\n”);
if(count==3)
printf(“equal”\n);
}
return 0;
}

#include<stdio.h>
#include<math.h>
int main() { int t; scanf("%d",&t); while(t–) { int n,i,count1=0,count2=0; scanf("%d",&n); int a[n],g[n]; for(i=0;i<n;i++) scanf("%d",&a[i]); for(i=0;i<n;i++) scanf("%d",&g[i]); for(i=0;i<n;i++) { if(a[i]<=g[i]) count1++; } for(i=0;i<n;i++) { if(a[i]<=g[n-1-i]) count2++; } if(count1==n && count2==n ) printf(“both\n”); else if(count1==n) printf(“front\n”); else if(count2==n) printf(“back\n”); else printf(“none\n”); } return 0; }

#include <stdio.h>

int main(void) {

int t,n,i;

int l[100000000],g[100000000];
scanf("%d",&t);
while(t–!=0)
{
int b=0,bo=0,f=0;
scanf("%d",&n);

    for(i=0;i<n;i++)
    scanf("%d",&l[i]);
   
     for(i=0;i<n;i++)
    scanf("%d",&g[i]);
   
    for(i=0;i<n;i++)
    {
      
         
         if(l[i]<=g[i])
          f++;
         }
      for(i=0;i<n;i++)
    {
      
      if(l[i]<=g[n-i-1])
          b++;
         

       
    }
   
    if(f==n && b==n)
      printf("both\n");
   
       else if(f==n)
      printf("front\n");
     
      else if(b==n)
       printf("back\n");
 
        else
        printf("none\n");
     
   
}


return 0;

}