Skip to content

Commit 8e10355

Browse files
First commit
0 parents commit 8e10355

File tree

11 files changed

+725
-0
lines changed

11 files changed

+725
-0
lines changed

devide&conqer/hw1/Main.java

Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,105 @@
1+
import java.util.ArrayList;
2+
import java.util.Arrays;
3+
import java.util.Scanner;
4+
5+
public class Main {
6+
7+
static int inversion(int[] A,int left, int right){
8+
int x1 = 0,x2 = 0,x3 = 0;
9+
if (left < right) {
10+
int mid = ((left + right) / 2);
11+
12+
x1 = inversion(A, left, mid);
13+
x2 = inversion(A, mid + 1, right);
14+
15+
x3 = inversionMerge(A, left, mid, right);
16+
17+
}
18+
return (x1 + x2 + x3);
19+
}
20+
21+
static int inversionMerge(int[] A,int left,int mid, int right){
22+
//
23+
int[] B = new int[(right-left)+1];
24+
int i = left, j = mid+1, k = 0, counter = 0;
25+
26+
while (i<= mid && j<= right){
27+
if(A[i] <= A[j]){
28+
B[k++] = A[i++];
29+
counter += (j-mid)-1;
30+
}else {
31+
B[k++] = A[j++];
32+
}
33+
}
34+
35+
while (i <= mid){
36+
B[k++] = A[i++];
37+
counter += right-mid;
38+
}
39+
while (j <= right){
40+
B[k++] = A[j++];
41+
}
42+
for (k = 0; k <= (right-left); k++) {
43+
A[left+k] = B[k];
44+
}
45+
return counter;
46+
}
47+
48+
49+
50+
51+
public static void main(String[] args) {
52+
53+
// write your code here
54+
Scanner scanner = new Scanner(System.in);
55+
int n = 0;
56+
ArrayList<String> result = new ArrayList();
57+
58+
do {
59+
n = scanner.nextInt();
60+
if (n == 0){
61+
break;
62+
}
63+
64+
int[] list = new int[n];
65+
for (int i = 0; i < n; i++) {
66+
list[i] = scanner.nextInt();
67+
}
68+
69+
int counter = 0;
70+
counter = inversion(list,0,n-1);
71+
// System.out.println("counter = " + counter);
72+
73+
counter = counter%2;
74+
if (counter == 0){
75+
result.add("Aghdas");
76+
}else {
77+
result.add("Morteza");
78+
}
79+
80+
}while (true);
81+
82+
for (int i = 0; i < result.size(); i++) {
83+
System.out.println(result.get(i));
84+
}
85+
}
86+
}
87+
// int counter = 0;
88+
//
89+
// int[] leftA = Arrays.copyOfRange(A, left, mid + 1);
90+
// int[] rightA = Arrays.copyOfRange(A, mid + 1, right + 1);
91+
//
92+
// int i = 0, j = 0, k = left;
93+
//
94+
// while (i < leftA.length && j < rightA.length) {
95+
// if (leftA[i] <= rightA[j])
96+
// A[k++] = leftA[i++];
97+
// else {
98+
// A[k++] = rightA[j++];
99+
// counter += (mid + 1) - (left + i);
100+
// }
101+
// }
102+
// while (i < leftA.length)
103+
// A[k++] = leftA[i++];
104+
// while (j < rightA.length)
105+
// A[k++] = rightA[j++];

devide&conqer/hw2/Main.java

Lines changed: 137 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,137 @@
1+
import java.util.ArrayList;
2+
import java.util.HashMap;
3+
import java.util.Scanner;
4+
import java.util.StringTokenizer;
5+
6+
public class Main {
7+
8+
public static void main(String[] args) {
9+
// write your code here
10+
Scanner scanner = new Scanner(System.in);
11+
12+
int num = scanner.nextInt();
13+
int nums[] = new int[7];
14+
for (int i = 6; i >= 0; i--) {
15+
nums[i] = num%10;
16+
num -= nums[i];
17+
num /=10;
18+
}
19+
// for (int i = 0; i < 7; i++) {
20+
// System.out.println(nums[i]);
21+
// }
22+
// char[] inputChars = new char[7];
23+
// for (int j = 0; j < 7; j++) {
24+
// inputChars[j] = st.charAt(j);
25+
// }
26+
27+
// ArrayList<HashMap<Integer, Character>> dic = new ArrayList<>();
28+
//
29+
// for (int i = 2; i <= 9; i++) {
30+
// dic.add(i,new HashMap<Integer,Character>(3));
31+
// }
32+
char[][] chars = new char[10][3];
33+
34+
chars[2][0] = 'A';
35+
chars[2][1] = 'B';
36+
chars[2][2] = 'C';
37+
38+
chars[3][0] = 'D';
39+
chars[3][1] = 'E';
40+
chars[3][2] = 'F';
41+
42+
chars[4][0] = 'G';
43+
chars[4][1] = 'H';
44+
chars[4][2] = 'I';
45+
46+
chars[5][0] = 'J';
47+
chars[5][1] = 'K';
48+
chars[5][2] = 'L';
49+
50+
chars[6][0] = 'M';
51+
chars[6][1] = 'N';
52+
chars[6][2] = 'O';
53+
54+
chars[7][0] = 'P';
55+
chars[7][1] = 'R';
56+
chars[7][2] = 'S';
57+
58+
chars[8][0] = 'T';
59+
chars[8][1] = 'U';
60+
chars[8][2] = 'V';
61+
62+
chars[9][0] = 'W';
63+
chars[9][1] = 'X';
64+
chars[9][2] = 'Y';
65+
66+
// Character u = dic.get('2').put(1,'A');
67+
68+
// dic.get('2').put(1,'A');
69+
// dic.get('2').put(2,'B');
70+
// dic.get('2').put(3,'C');
71+
//
72+
// dic.get('3').put(1,'D');
73+
// dic.get('3').put(2,'E');
74+
// dic.get('3').put(3,'F');
75+
//
76+
// dic.get('4').put(1,'G');
77+
// dic.get('4').put(2,'H');
78+
// dic.get('4').put(3,'I');
79+
//
80+
// dic.get('5').put(1,'J');
81+
// dic.get('5').put(2,'K');
82+
// dic.get('5').put(3,'L');
83+
//
84+
// dic.get('6').put(1,'M');
85+
// dic.get('6').put(2,'N');
86+
// dic.get('6').put(3,'O');
87+
//
88+
// dic.get('7').put(1,'P');
89+
// dic.get('7').put(2,'R');
90+
// dic.get('7').put(3,'S');
91+
//
92+
// dic.get('8').put(1,'T');
93+
// dic.get('8').put(2,'U');
94+
// dic.get('8').put(3,'V');
95+
//
96+
// dic.get('9').put(1,'X');
97+
// dic.get('9').put(2,'Y');
98+
// dic.get('9').put(3,'Z');
99+
100+
StringBuilder sb = new StringBuilder(7);
101+
String str;
102+
int count=0;
103+
104+
int x = 0;
105+
for (int i = 0; i < 3; i++) {
106+
sb.append(chars[nums[x]][i]);
107+
for (int j = 0; j < 3; j++) {
108+
sb.append(chars[nums[x+1]][j]);
109+
for (int k = 0; k < 3; k++) {
110+
sb.append(chars[nums[x+2]][k]);
111+
for (int l = 0; l < 3; l++) {
112+
sb.append(chars[nums[x+3]][l]);
113+
for (int m = 0; m < 3; m++) {
114+
sb.append(chars[nums[x+4]][m]);
115+
for (int n = 0; n < 3; n++) {
116+
sb.append(chars[nums[x+5]][n]);
117+
for (int o = 0; o < 3; o++) {
118+
sb.append(chars[nums[x+6]][o]);
119+
str = sb.toString();
120+
System.out.println(str);
121+
sb.deleteCharAt(6);
122+
count++;
123+
}
124+
sb.delete(5,6);
125+
}
126+
sb.delete(4,6);
127+
}
128+
sb.delete(3,6);
129+
}
130+
sb.delete(2,6);
131+
}
132+
sb.delete(1,6);
133+
}
134+
sb.delete(0,6);
135+
}
136+
}
137+
}

dynamic-programming/hw1/Main.java

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
import java.util.Scanner;
2+
3+
public class Main {
4+
5+
static int t = 0;
6+
7+
public static void main(String[] args) {
8+
9+
Scanner scanner = new Scanner(System.in);
10+
int n = scanner.nextInt();
11+
12+
int[] a = new int[n];
13+
for (int i = 0 ; i < n ; i++){
14+
a[i] = scanner.nextInt();
15+
}
16+
17+
18+
quiz(0,0,a);
19+
20+
System.out.println(t);
21+
}
22+
23+
static void quiz(int p , int r , int[] a ){
24+
25+
26+
// System.out.println(" quiz with " + p +" and "+ r + " :");
27+
// System.out.println("t = " + t);
28+
29+
int j;
30+
for (j = 0; j < a.length-1; j++) {
31+
if (2 * a[j] < a[j + 1]) {
32+
// System.out.println("return t ("+ t +") for " + p + ", " + r );
33+
if( t <= (r-p)+1){
34+
t = (r-p)+1;
35+
}
36+
p = j+1;
37+
r = p;
38+
}else {
39+
r = j + 1;
40+
}
41+
}
42+
if( t <= (r-p)+1 ){
43+
t = (r-p)+1;
44+
}
45+
}
46+
}

dynamic-programming/hw2/Main.java

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
import java.util.Scanner;
2+
3+
public class Main {
4+
5+
public static void main(String[] args) {
6+
// write your code here
7+
Scanner scanner = new Scanner(System.in);
8+
9+
int n = scanner.nextInt();
10+
a = scanner.nextInt();
11+
b = scanner.nextInt();
12+
c = scanner.nextInt();
13+
14+
memory = new int[n+1][3][n+1];
15+
scanner.close();
16+
17+
System.out.println(piece(n,0));
18+
}
19+
20+
static int[][][] memory;
21+
static int a, b, c;
22+
23+
24+
static int piece(int n , int counter){
25+
if (n < 0){
26+
return -1;
27+
}else if(n == 0){
28+
return counter;
29+
}
30+
31+
if(memory[n][0][counter] == 0){
32+
memory[n][0][counter] = piece(n - a , counter+1);
33+
}
34+
if(memory[n][1][counter] == 0){
35+
memory[n][1][counter] = piece(n - b , counter+1);
36+
}
37+
if(memory[n][2][counter] == 0){
38+
memory[n][2][counter] = piece(n - c , counter+1);
39+
}
40+
41+
return max(max(memory[n][0][counter],memory[n][1][counter]),memory[n][2][counter]);
42+
}
43+
44+
static int max(int a , int b){
45+
if(a > b)
46+
return a;
47+
else
48+
return b;
49+
}
50+
}
695 KB
Binary file not shown.

0 commit comments

Comments
 (0)