package second;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
public class LeftBRight {
public static void smallsSum(int []arr) {
if(arr==null || arr.length<2) {
return ;
}
mergeSort(arr,0,arr.length-1);
//printArray(arr);
//getRandomArray(100,100);
}
public static void mergeSort(int[] arr, int l, int r) {
if (l == r) {
return ;
}
int mid = l+(r-l)/2;
mergeSort(arr,l,mid);
mergeSort(arr,mid+1,r);
merge(arr,l,mid,r);
//return mergeSort(arr,l,mid)+mergeSort(arr,mid+1,r)+merge(arr,l,mid,r);
}
static List<Integer> list = new ArrayList<Integer>();
public static int merge(int[] arr, int l, int mid,int r) {
int help[] = new int[r - l + 1];
int i=0;
int p1=l;
int p2=mid+1;
int res =0;
// 1 3 5 2 4 6 7
// 3 1 5 2 4 6 7
while (p1 <= mid && p2 <= r){
if(arr[p1] > arr[p2]) {
int k = p1;
while(k <= mid) {
list.add(arr[k++]);
list.add(arr[p2]);
}
}
help[i++] = arr[p1] <= arr[p2] ? arr[p1++] : arr[p2++];
}
while(p1<=mid) {
help[i++]= arr[p1++];
}
while(p2<=r) {
help[i++]= arr[p2++];
}
for(i=0;i<help.length;i++) {
arr[l+i]=help[i];
}
return res;
}
public static void printArray(int arr[]) {
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + "\t");
}
}
public static void swap(int arr[],int i,int j) {
int tmp =arr[i];
arr[i]=arr[j];
arr[j]=tmp;
}
public static int [] getRandomArray(int maxSize,int maxValue) {
//Math.random() >> [0,1)
int arr [] = new int[(int)((maxSize+1)*Math.random())];
for(int i=0;i<arr.length;i++) {
arr[i]=(int)((maxValue+1)*(Math.random())-maxValue*(Math.random()));
}
return arr;
}
public static void prilntList(List<Integer> list) {
Iterator<Integer> it = list.iterator();
while(it.hasNext()) {
System.out.print(it.next()+"\t");
}
}
public static int [] copyArray(int []arr) {
if(arr==null&& arr.length<2) {
return null;
}
int[] res = new int[arr.length];
for(int i=0;i<arr.length;i++) {
res[i]=arr[i];
}
return res;
}
public static int comparetor(int arr[]) {
if(arr==null||arr.length<2) {
return 0;
}
//135 269
int res =0;
for(int i=1;i<arr.length;i++) {
for(int j=0;j<i;j++) {
res += arr[j] < arr[i] ? arr[j] : 0;
}
}
return res;
}
public static void comparetor2(int arr[]) {
List<Integer> list = new ArrayList<Integer>();
if(arr==null||arr.length<2) {
return;
}
//135 269
for(int i=0;i<arr.length;i++) {
for(int j=i+1;j<arr.length;j++) {
if(arr[i]>arr[j]) {
list.add(arr[i]);
list.add(arr[j]);
}
}
}
prilntList(list);
}
public static boolean isEqual(int []arr1,int []arr2) {
if(arr1==null&&arr2!=null||arr1!=null&&arr2==null) {
return false;
}
if(arr1==null &&arr2==null) {
return false;
}
if (arr1.length != arr2.length) {
return false;
}
for(int i=0;i<arr1.length;i++) {
if(arr1[i]!=arr2[i]) {
return false;
}
}
return true;
}
public static void sortArray(int arr[]) {
Arrays.sort(arr);
}
public static void test(int maxTime,int maxSize,int maxValue,boolean succeed) {
for(int i=0;i<maxTime;i++) {
int arr[] =getRandomArray(maxSize,maxValue);
int copyarr[]=copyArray(arr);
smallsSum(arr);
prilntList(list);
System.out.println("======================");
comparetor2(copyarr);
/*if(smallsSum(arr)!= comparetor(copyarr)) {
succeed =false;
break;
}*/
/*if(!isEqual(arr,copyarr)) {
succeed =false;
break;
}*/
}
System.out.println(succeed?"nice":"fuckingfucking");
}
public static void main(String args[]) {
int arr[]= {5,1,9,7,1,5,3,1};
int copyarr[]={5,1,9,7,1,5,3,1};
smallsSum(arr);
prilntList(list);
System.out.println("======================");
comparetor2(copyarr);
//System.out.println(comparetor(arr));
//System.out.println(smallsSum(arr));
//test(2,10,10,true);
}
}
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
public class LeftBRight {
public static void smallsSum(int []arr) {
if(arr==null || arr.length<2) {
return ;
}
mergeSort(arr,0,arr.length-1);
//printArray(arr);
//getRandomArray(100,100);
}
public static void mergeSort(int[] arr, int l, int r) {
if (l == r) {
return ;
}
int mid = l+(r-l)/2;
mergeSort(arr,l,mid);
mergeSort(arr,mid+1,r);
merge(arr,l,mid,r);
//return mergeSort(arr,l,mid)+mergeSort(arr,mid+1,r)+merge(arr,l,mid,r);
}
static List<Integer> list = new ArrayList<Integer>();
public static int merge(int[] arr, int l, int mid,int r) {
int help[] = new int[r - l + 1];
int i=0;
int p1=l;
int p2=mid+1;
int res =0;
// 1 3 5 2 4 6 7
// 3 1 5 2 4 6 7
while (p1 <= mid && p2 <= r){
if(arr[p1] > arr[p2]) {
int k = p1;
while(k <= mid) {
list.add(arr[k++]);
list.add(arr[p2]);
}
}
help[i++] = arr[p1] <= arr[p2] ? arr[p1++] : arr[p2++];
}
while(p1<=mid) {
help[i++]= arr[p1++];
}
while(p2<=r) {
help[i++]= arr[p2++];
}
for(i=0;i<help.length;i++) {
arr[l+i]=help[i];
}
return res;
}
public static void printArray(int arr[]) {
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + "\t");
}
}
public static void swap(int arr[],int i,int j) {
int tmp =arr[i];
arr[i]=arr[j];
arr[j]=tmp;
}
public static int [] getRandomArray(int maxSize,int maxValue) {
//Math.random() >> [0,1)
int arr [] = new int[(int)((maxSize+1)*Math.random())];
for(int i=0;i<arr.length;i++) {
arr[i]=(int)((maxValue+1)*(Math.random())-maxValue*(Math.random()));
}
return arr;
}
public static void prilntList(List<Integer> list) {
Iterator<Integer> it = list.iterator();
while(it.hasNext()) {
System.out.print(it.next()+"\t");
}
}
public static int [] copyArray(int []arr) {
if(arr==null&& arr.length<2) {
return null;
}
int[] res = new int[arr.length];
for(int i=0;i<arr.length;i++) {
res[i]=arr[i];
}
return res;
}
public static int comparetor(int arr[]) {
if(arr==null||arr.length<2) {
return 0;
}
//135 269
int res =0;
for(int i=1;i<arr.length;i++) {
for(int j=0;j<i;j++) {
res += arr[j] < arr[i] ? arr[j] : 0;
}
}
return res;
}
public static void comparetor2(int arr[]) {
List<Integer> list = new ArrayList<Integer>();
if(arr==null||arr.length<2) {
return;
}
//135 269
for(int i=0;i<arr.length;i++) {
for(int j=i+1;j<arr.length;j++) {
if(arr[i]>arr[j]) {
list.add(arr[i]);
list.add(arr[j]);
}
}
}
prilntList(list);
}
public static boolean isEqual(int []arr1,int []arr2) {
if(arr1==null&&arr2!=null||arr1!=null&&arr2==null) {
return false;
}
if(arr1==null &&arr2==null) {
return false;
}
if (arr1.length != arr2.length) {
return false;
}
for(int i=0;i<arr1.length;i++) {
if(arr1[i]!=arr2[i]) {
return false;
}
}
return true;
}
public static void sortArray(int arr[]) {
Arrays.sort(arr);
}
public static void test(int maxTime,int maxSize,int maxValue,boolean succeed) {
for(int i=0;i<maxTime;i++) {
int arr[] =getRandomArray(maxSize,maxValue);
int copyarr[]=copyArray(arr);
smallsSum(arr);
prilntList(list);
System.out.println("======================");
comparetor2(copyarr);
/*if(smallsSum(arr)!= comparetor(copyarr)) {
succeed =false;
break;
}*/
/*if(!isEqual(arr,copyarr)) {
succeed =false;
break;
}*/
}
System.out.println(succeed?"nice":"fuckingfucking");
}
public static void main(String args[]) {
int arr[]= {5,1,9,7,1,5,3,1};
int copyarr[]={5,1,9,7,1,5,3,1};
smallsSum(arr);
prilntList(list);
System.out.println("======================");
comparetor2(copyarr);
//System.out.println(comparetor(arr));
//System.out.println(smallsSum(arr));
//test(2,10,10,true);
}
}