Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef long double ld;
typedef vector<int> vi;
#define f(i,x,n) for(ll i=x;i<n;i++)
#define all(a) a.begin() , a.end()
#define fast_io() ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0)
#define print(a) cout << a << ' '
#define println(a) cout << a << '\n'
#define line() cout << '\n'
inline void solve() {
int n; cin >> n;
vi a(n),b(n-1);
f(i,0,n) cin >> a[i];
f(i,0,n-1) cin >> b[i];
sort(all(a));
sort(all(b));
map<int,int> freq;
int d1,d2;
f(i,0,n-1) {
d1 = b[i] - a[i];
d2 = b[i] - a[i+1];
if( d1 > 0 ) freq[d1]++;
if( d2 > 0 ) freq[d2]++;
}
for(auto f:freq ) {
if(f.second == n-1) {
println(f.first);
return;
}
}
}
signed main() {
fast_io();
int t = 1;
cin >> t;
while(t--) solve();
return 0;
}
#include <bits/stdc++.h>
using namespace std;
#define int long long int
#define trav(a, x) for(auto &a:x)
#define rep(i, b) for(int i=0; i<b; i++)
#define in(n) int n; cin>>n;
#define vi vector<int>
#define vc vector<char>
#define vs vector<string>
#define vvi vector<vi>
#define vpii vector<pair<int,int>>
#define mii map<int,int>
#define mci map<char,int>
#define msi map<string,int>
#define pb push_back
#define pob pop_back
#define fi first
#define se second
#define YES cout << "YES" << endl;
#define yes cout << "yes" << endl;
#define Yes cout << "Yes" << endl;
#define NO cout << "NO" << endl;
#define no cout << "no" << endl;
#define No cout << "No" << endl;
#define minus1 cout<<-1<<endl;
#define zero cout<<0<<endl;
#define coutt(x) cout<<x<<endl;
#define cott(x) cout<<x<<" ";
#define end cout << endl;
#define mod 998244353
void solve()
{
int n;
cin>>n;
int arr[n];
int brr[n-1];
rep(i,n)cin>>arr[i];
rep(i,n-1)cin>>brr[i];
sort(arr,arr+n);
sort(brr,brr+n-1);
mii m;
for(int i=0;i<n-1;i++)
{
m[brr[i]-arr[i]]++;
m[brr[i]-arr[i+1]]++;
}
int value = -1;
int val = 0;
for(auto i:m)
{
if(i.se>val && i.fi>0)
{
value = i.fi;
val = i.se;
}
}
cout<<value<<endl;
}
int32_t main()
{
int t;
cin >> t;
while (t--)
{
solve();
}
return 0;
}
'''
bob's array is 1 smaller
Step 1: Sort the 2 arrays
Step 2: Either x = bobArray[0] - aliceArray[0]
or
x = bobArray[0] - aliceArray[1]
Both cannot be false
Since we want smallest value of x, try checking for 2nd case
If not, 1st case should be true.
'''
def decodeX(aliceArray, bobArray):
if not isinstance(aliceArray, list) or not isinstance(bobArray, list):
raise ValueError
aliceArray.sort()
bobArray.sort()
deltaX1 = bobArray[0] - aliceArray[0]
deltaX2 = bobArray[0] - aliceArray[1]
if deltaX2 <= 0:
return deltaX1
for i in range(0, len(bobArray)):
deltaX = bobArray[i] - aliceArray[i+1]
if deltaX != deltaX2:
return deltaX1
return deltaX2
def solve():
# ignore N
input()
aliceArray = list(map(int, input().split()))
bobArray = list(map(int, input().split()))
x = decodeX(aliceArray, bobArray)
print(x)
def main():
test_cases = int(input())
for t in range(test_cases):
solve()
if __name__ == "__main__":
main()
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define lli long long int
#define li long int
#define inf 10000
int max(int a, int b)
{
int m = a;
if(b>a)
m = b;
return m;
}
int min(int a, int b)
{
int m = a;
if(b<a)
m = b;
return m;
}
// Merges two subarrays of arr[].
// First subarray is arr[l..m]
// Second subarray is arr[m+1..r]
void merge(lli arr[], lli l, lli m, lli r)
{
lli i, j, k;
lli n1 = m - l + 1;
lli n2 = r - m;
/* create temp arrays */
lli L[n1], R[n2];
/* Copy data to temp arrays L[] and R[] */
for (i = 0; i < n1; i++)
L[i] = arr[l + i];
for (j = 0; j < n2; j++)
R[j] = arr[m + 1 + j];
/* Merge the temp arrays back into arr[l..r]*/
i = 0; // Initial index of first subarray
j = 0; // Initial index of second subarray
k = l; // Initial index of merged subarray
while (i < n1 && j < n2) {
if (L[i] <= R[j]) {
arr[k] = L[i];
i++;
}
else {
arr[k] = R[j];
j++;
}
k++;
}
/* Copy the remaining elements of L[], if there
are any */
while (i < n1) {
arr[k] = L[i];
i++;
k++;
}
/* Copy the remaining elements of R[], if there
are any */
while (j < n2) {
arr[k] = R[j];
j++;
k++;
}
}
/* l is for left index and r is right index of the
sub-array of arr to be sorted */
void mergeSort(lli arr[], lli l, lli r)
{
if (l < r) {
// Same as (l+r)/2, but avoids overflow for
// large l and h
lli m = l + (r - l) / 2;
// Sort first and second halves
mergeSort(arr, l, m);
mergeSort(arr, m + 1, r);
merge(arr, l, m, r);
}
}
void program()
{
/*
sort them
just take diff of first n-1 (bi - ai)
if n >= 3 : two diff must be equal, take them
if n = 2 : take second diff
*/
lli n;
scanf("%lld", &n);
lli i;
lli A[n], B[n-1];
for ( i = 0; i < n; i++)
{
scanf("%lld", &A[i]);
}
for ( i = 0; i < n-1; i++)
{
scanf("%lld", &B[i]);
}
mergeSort(A, 0, n-1);
mergeSort(B, 0, n-2);
if(n == 2)
{
if(A[1] >= B[0])
printf("%lld\n", B[0]-A[0]);
else
printf("%lld\n", B[0]-A[1]);
return;
}
lli d1 = B[n-2] - A[n-1];
lli d2 = B[n-3] - A[n-2];
if(d1 == d2 && d1>0)
{
printf("%lld\n", d1);
return;
}
//eliminate A[n-2]
lli d2_ = B[n-3] - A[n-3];
if(d1 == d2_ && d1>0)
{
printf("%lld\n", d1);
return;
}
//eliminate A[n-1]
lli d1_ = B[n-2] - A[n-2];
if(d1_ == d2_)
{
printf("%lld\n", d1_);
return;
}
}
int main(void)
{
long long int T;
scanf("%lld", &T);
//printf("%lld\n", T);
// T = 1;
for (long long int i = 0; i < T; i++)
{
program();
}
return 0;
}
/* package codechef; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Codechef
{
public static void main (String[] args) throws java.lang.Exception
{
// your code goes here
Scanner sc=new Scanner(System.in);
int disha=sc.nextInt();
while(disha-->0){
int cnt=0;
int nocnt=0;
int n=sc.nextInt();
int arr[]=new int[n];
int brr[]=new int[n-1];
for(int i=0;i<n;i++){
arr[i]=sc.nextInt();
}
for(int i=0;i<n-1;i++){
brr[i]=sc.nextInt();
}
Arrays.sort(arr);
Arrays.sort(brr);
int diff1=brr[0]-arr[0];
int diff2=brr[0]-arr[1];
int cnt1=0;
int cnt2=0;
for(int i=0;i<brr.length;i++){
if(brr[i]-arr[i]>0){
if(brr[i]-arr[i]==diff1)cnt1++;
if(brr[i]-arr[i]==diff2)cnt2++;
}
if(brr[i]-arr[i+1]>0){
if(brr[i]-arr[i+1]==diff1)cnt1++;
if(brr[i]-arr[i+1]==diff2)cnt2++;
}
}
if(diff1<=0)
System.out.println(diff2);
else if(diff2<=0)
System.out.println(diff1);
else if(cnt1 > cnt2 && diff2 > 0) {
System.out.println(diff1);
}
else {
System.out.println(diff2);
}
}
}
}
for _ in range(int(input())):
n = int(input())
a = list(map(int, input().split()))
b = list(map(int, input().split()))
a.sort()
b.sort()
m = min(b)-min(a)
M = max(b)-max(a)
# the answer is either m or M
if M <= 0:
print(m)
elif n == 2:
print(min(m, M))
elif b[0]-a[1] == M:
print(M)
else:
print(m)
# cook your code here
import collections
T = input()
while T>0:
N = input()
A = sorted(map(int,raw_input().split()))
B = sorted(map(int,raw_input().split()))
if N == 2:
if A[0]<B[0]: print(min(B[0] - A[0],B[0]-A[1]) if B[0]>A[1] else B[0]-A[0])
else: print(B[0]-A[1])
else:
if B[0]-A[1] == B[1]-A[2] and B[0]-A[1]!=0: print(B[0]-A[1])
else:print(B[0]-A[0])
T-=1
using System;
using System.Linq;
using System.Collections.Generic;
using System.Text.RegularExpressions;
using System.Text;
using System.Numerics;
public class Test
{
public static void Main()
{
var WS = new StringBuilder();
int A = GetInt();
int N;
while(A-- != 0)
{
var n = GetInt();
var a = GetIntArray().ToList();
var b = GetIntArray().ToList();
var originalMin = a.Min();
var originalSecondMin = a.Where(x => x > originalMin).Min();
var newMin = b.Min();
var x1 = newMin - originalMin;
var x2 = newMin - originalSecondMin;
var originalSet = new HashSet<int>(a);
var isValid2 = x2 > 0 && b.All(x => originalSet.Contains(x - x2));
if(isValid2) Console.WriteLine(x2);
else Console.WriteLine(x1);
}
Console.WriteLine(WS.ToString());
// your code goes here
}
public static void Writex(string s) => (Console.WriteLine(s));
public static int GetInt() => int.Parse(Console.ReadLine());
public static long GetLong() => long.Parse(Console.ReadLine());
public static string GetString() => (Console.ReadLine());
public static string[] GetStringArray() => Console.ReadLine().Trim().Split(' ');
public static int[] GetIntArray() => Console.ReadLine().Trim().Split(' ').Select(int.Parse).ToArray();
public static long[] GetLongArray() => Console.ReadLine().Trim().Split(' ').Select(long.Parse).ToArray();
}
package main
import (
"bufio"
"bytes"
"fmt"
"os"
"sort"
)
func main() {
reader := bufio.NewReader(os.Stdin)
tc := readNum(reader)
var buf bytes.Buffer
for tc > 0 {
tc--
n := readNum(reader)
A := readNNums(reader, n)
B := readNNums(reader, n-1)
res := solve(n, A, B)
buf.WriteString(fmt.Sprintf("%d\n", res))
}
fmt.Print(buf.String())
}
func readInt(bytes []byte, from int, val *int) int {
i := from
sign := 1
if bytes[i] == '-' {
sign = -1
i++
}
tmp := 0
for i < len(bytes) && bytes[i] >= '0' && bytes[i] <= '9' {
tmp = tmp*10 + int(bytes[i]-'0')
i++
}
*val = tmp * sign
return i
}
func readNum(reader *bufio.Reader) (a int) {
bs, _ := reader.ReadBytes('\n')
readInt(bs, 0, &a)
return
}
func readTwoNums(reader *bufio.Reader) (a int, b int) {
res := readNNums(reader, 2)
a, b = res[0], res[1]
return
}
func readThreeNums(reader *bufio.Reader) (a int, b int, c int) {
res := readNNums(reader, 3)
a, b, c = res[0], res[1], res[2]
return
}
func readNNums(reader *bufio.Reader, n int) []int {
res := make([]int, n)
x := 0
bs, _ := reader.ReadBytes('\n')
for i := 0; i < n; i++ {
for x < len(bs) && (bs[x] < '0' || bs[x] > '9') && bs[x] != '-' {
x++
}
x = readInt(bs, x, &res[i])
}
return res
}
func readUint64(bytes []byte, from int, val *uint64) int {
i := from
var tmp uint64
for i < len(bytes) && bytes[i] >= '0' && bytes[i] <= '9' {
tmp = tmp*10 + uint64(bytes[i]-'0')
i++
}
*val = tmp
return i
}
func solve(n int, A []int, B []int) int {
sort.Ints(A)
sort.Ints(B)
x := B[0] - A[0]
if x > 0 {
i := 1
j := 1
var cnt int
for i < n-1 {
if j < n && B[i]-A[j] == x {
i++
j++
continue
}
j++
cnt++
if j < n && B[i]-A[j] == x {
i++
j++
continue
}
break
}
if j < n {
cnt++
}
if i < n-1 || cnt != 1 {
// bad choice
x = -1
}
}
y := B[0] - A[1]
if y > 0 {
i := 1
j := 2
for i < n-1 && j < n && B[i]-A[j] == y {
i++
j++
}
if i < n-1 {
y = -1
}
}
if x > 0 && y > 0 {
return min(x, y)
}
if x > 0 {
return x
}
return y
}
func min(a, b int) int {
if a < b {
return a
}
return b
}
In our experience, we suggest you solve this Remove One Element 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 Remove One Element CodeChef Solution.
I hope this Remove One Element 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!