Skip to content

Commit 32b524e

Browse files
committed
New updates
1 parent 88d4c77 commit 32b524e

File tree

5 files changed

+375
-0
lines changed

5 files changed

+375
-0
lines changed

Java/Test/Main.java

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
// package fraction;
2+
3+
import java.util.*; // Import the Scanner class
4+
5+
public class Main {
6+
public static void findAndContest(String[][] maps, boolean[][] visited, Set<String> tempFraction, int row, int col,
7+
int x, int y) { // Map< String,Integer> fractions
8+
if (x < 0 || x >= row) { // make sure not not exceed the limit
9+
return;
10+
}
11+
if (y < 0 || y >= col) { // make sure not not exceed the limit
12+
return;
13+
}
14+
if (visited[x][y]) { // ignore it when already visited
15+
return;
16+
}
17+
visited[x][y] = true; // set true when the maps is already visited
18+
if (maps[x][y].equals("#")) { // ignore #
19+
return;
20+
}
21+
if (!maps[x][y].equals(".")) { // add fraction to the Set tempFraction
22+
tempFraction.add(maps[x][y]);
23+
}
24+
25+
findAndContest(maps, visited, tempFraction, row, col, x, y + 1); // move direction right
26+
findAndContest(maps, visited, tempFraction, row, col, x, y - 1); // move direction left
27+
findAndContest(maps, visited, tempFraction, row, col, x + 1, y); // move direction up
28+
findAndContest(maps, visited, tempFraction, row, col, x - 1, y); // move direction down
29+
return;
30+
}
31+
32+
public static void main(String[] args) {
33+
34+
Scanner input = new Scanner(System.in);
35+
36+
int testCase = input.nextInt();
37+
38+
for (int i = 1; i <= testCase; i++) {
39+
int row = input.nextInt();
40+
int col = input.nextInt();
41+
42+
String[][] maps = new String[row][col]; // map the input string to 2d array
43+
boolean[][] visited = new boolean[row][col]; // array to store if the node is already visited
44+
Set<String> tempFractions = new HashSet<String>(); // using set to store temp fraction
45+
Map<String, Integer> fractions = new TreeMap<String, Integer>(); // using tree map to store fraction by
46+
// alpahbetical order
47+
48+
for (int j = 0; j < row; j++) { // init data
49+
String str = input.next();
50+
char[] ch = str.toCharArray();
51+
for (int k = 0; k < ch.length; k++) {
52+
maps[j][k] = String.valueOf(ch[k]);
53+
visited[j][k] = false;
54+
}
55+
}
56+
int Conquer = 0;
57+
for (int j = 0; j < row; j++) {
58+
for (int k = 0; k < col; k++) {
59+
tempFractions.clear(); // reset temp fraction every region check
60+
findAndContest(maps, visited, tempFractions, row, col, j, k);
61+
Iterator<String> tempITR = tempFractions.iterator();
62+
if (tempFractions.size() > 1) { // if set fraction > 1 there's a contest
63+
Conquer++;
64+
} else { // if set = 1 then store value in set(tempfraction) to fraction
65+
while (tempITR.hasNext()) {
66+
String frac = tempITR.next();
67+
if (fractions.get(frac) != (null)) {
68+
fractions.put(frac, fractions.get(frac) + 1);
69+
} else if (fractions.get(frac) == (null)) {
70+
fractions.put(frac, 1);
71+
}
72+
}
73+
}
74+
}
75+
}
76+
System.out.println("Case " + i + ":");
77+
for (Map.Entry<String, Integer> entry : fractions.entrySet()) {
78+
String key = entry.getKey();
79+
Integer val = entry.getValue();
80+
81+
System.out.println(key + " " + val);
82+
}
83+
System.out.println("contested " + Conquer);
84+
}
85+
}
86+
}

JavaScript/Tests/console.js

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
function g(str) {
2+
const i = 0;
3+
4+
let new_str = "";
5+
6+
while (i < new_str.length - 1) {
7+
new_str = new_str + str[i + 1];
8+
9+
i++;
10+
}
11+
12+
return new_str;
13+
}
14+
15+
function f(str) {
16+
if (str.length == 0)
17+
return "";
18+
else if (str.length == 1)
19+
return str;
20+
else
21+
return f(g(str)) + str[0];
22+
}
23+
24+
function h(n, str) {
25+
while (n != 1) {
26+
if (n % 2 == 0)
27+
n = n / 2;
28+
else
29+
n = 3 * n + 1;
30+
31+
str = f(str);
32+
}
33+
34+
return str;
35+
}
36+
37+
function pow(x, y) {
38+
if (y == 0)
39+
return 1;
40+
else
41+
return x * pow(x, y - 1);
42+
}
43+
44+
console.log(h(1, "fruits"));
45+
console.log(h(2, "fruits"));
46+
console.log(h(5, "fruits"));
47+
console.log(h(pow(2, 1000000000000000), "fruits"));
48+
console.log(h(pow(2, 9831050005000007), "fruits"));

JavaScript/Tests/main.js

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
var i;
2+
3+
for (i = 1; i <= 100; i++) {
4+
if (i % 15 == 0) {
5+
console.log("FizzBuzz");
6+
} else if (i % 5 == 0) {
7+
console.log("Buzz");
8+
} else if (i % 3 == 0) {
9+
console.log("Fizz");
10+
} else {
11+
console.log(i);
12+
}
13+
}

Python/Test/code.py

Lines changed: 202 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,202 @@
1+
import numpy as np
2+
3+
allwords = []
4+
len_case = []
5+
m = []
6+
W = ""
7+
8+
9+
def horizontal(i):
10+
len_w = len(W)
11+
awal_w = 0
12+
for x in m:
13+
var_kanan = "".join(x).lower() # *nananannana#
14+
var_kiri = "".join(x[::-1]).lower() # anannananan*
15+
index_cell = m.index(list(var_kanan)) # index ['n','a','n','a','n']
16+
17+
for x in range(len(var_kanan)): # x in nananannana#
18+
if W[0] == var_kanan[x]: # jika n == n
19+
fillt_kanan = var_kanan[x:] # n sampai akhir
20+
split_wordR = fillt_kanan[awal_w:len_w] # 1 - panjangW = nana
21+
22+
if (
23+
split_wordR == W
24+
and split_wordR == split_wordR[::-1]
25+
and len(split_wordR) == len(W)
26+
): # x==y & x==z & len==len
27+
allwords.append(
28+
var_kanan[x::]
29+
+ "[{0},{1}]-ke:{2}".format(index_cell + 1, x + 1, x)
30+
) # ana**-n [and get index baris dan kolom]-ke:x
31+
i += 1
32+
elif (
33+
split_wordR == W
34+
and split_wordR != split_wordR[::-1]
35+
and len(split_wordR) == len(W)
36+
): # anan==anan && nana1=anan && 4==4
37+
allwords.append(
38+
var_kanan[x::]
39+
+ "[{0},{1}]-ke:{2}".format(index_cell + 1, x + 1, x)
40+
)
41+
i += 1
42+
else:
43+
pass
44+
else:
45+
pass
46+
for x in range(len(var_kiri)): # anannananan*
47+
if W[0] == var_kiri[x]:
48+
fillt_kiri = var_kiri[x::] # anannananan*
49+
split_wordL = fillt_kiri[
50+
awal_w:len_w
51+
] # 1 - panjangW = nana #anannananan*
52+
53+
if (
54+
split_wordL == W
55+
and split_wordL != split_wordL[::-1]
56+
and len(split_wordL) == len(W)
57+
):
58+
allwords.append(
59+
var_kiri[x::]
60+
+ "[{0},-{1}]-ke:{2}".format(index_cell + 1, x + 1, x)
61+
)
62+
i += 1
63+
return i
64+
65+
66+
def vertical(i):
67+
len_w = len(W)
68+
awal_w = 0
69+
after_zip = list(zip(*m))
70+
# print("XX:",after_zip)
71+
for x in after_zip:
72+
up_down = "".join(x).lower() # dari atas ke bawah
73+
down_up = "".join(x[::-1]).lower() # dari bawah ke atas
74+
# print("UP:",up_down)
75+
# print("DOWN:",down_up)
76+
for x in range(len(up_down)): # x in panjang up_down
77+
if W[0] == up_down[x]: # n == n
78+
fillt_up_down = up_down[x:] # nxxxx
79+
split_wordU = fillt_up_down[awal_w:len_w] # 1 - panjang len_w = nana
80+
if (
81+
split_wordU == W
82+
and split_wordU == split_wordU[::-1]
83+
and len(split_wordU) == len(W)
84+
):
85+
# print("kata sama - Palindrome [ FOUND ]: ",up_down)
86+
allwords.append(up_down[x::] + "[v]")
87+
i += 1
88+
elif (
89+
split_wordU == W
90+
and split_wordU != split_wordU[::-1]
91+
and len(split_wordU) == len(W)
92+
):
93+
# print("kata buka Palindrome: ",up_down)
94+
# print("--- kanan[+]",split_wordU, W)
95+
allwords.append(up_down[x::] + "[v]")
96+
i += 1
97+
98+
for x in range(len(down_up)):
99+
if W[0] == down_up[x]:
100+
fillt_down_up = down_up[x:]
101+
split_wordD = fillt_down_up[awal_w:len_w]
102+
103+
if (
104+
split_wordD == W
105+
and split_wordD != split_wordD[::-1]
106+
and len(split_wordD) == len(W)
107+
):
108+
# print("--- kiri[*]",split_wordD, W)
109+
allwords.append(down_up[x::] + "[^]")
110+
i += 1
111+
return i
112+
113+
114+
def diagonalFunc(i):
115+
len_w = len(W)
116+
awal_w = 0
117+
matrix = np.array(m)
118+
diags = [
119+
matrix[::-1, :].diagonal(i)
120+
for i in range(-matrix.shape[0] + 1, matrix.shape[1])
121+
]
122+
diags.extend(
123+
matrix.diagonal(i) for i in range(matrix.shape[1] - 1, -matrix.shape[0], -1)
124+
)
125+
after_diag = list([n.tolist() for n in diags])
126+
# print(after_diag)
127+
for x in after_diag:
128+
diagno_rev = "".join(map(lambda x: "".join(x), x)).lower()
129+
diagaf_rev = "".join(map(lambda x: "".join(x), x[::-1])).lower()
130+
131+
# print(diagno_rev)
132+
# print(diagaf_rev)
133+
for x in range(len(diagno_rev)):
134+
if W[0] == diagno_rev[x]:
135+
fillt_diagno_rev = diagno_rev[x:] # nxxxx
136+
split_wordno_rev = fillt_diagno_rev[
137+
awal_w:len_w
138+
] # 1 - panjang len_w = nana
139+
140+
if (
141+
split_wordno_rev == W
142+
and split_wordno_rev == split_wordno_rev[::-1]
143+
and len(split_wordno_rev) == len(W)
144+
):
145+
# print("kata sama - Palindrome [ FOUND ]: ",diagno_rev)
146+
allwords.append(diagno_rev[x::] + "v")
147+
i += 1
148+
elif (
149+
split_wordno_rev == W
150+
and split_wordno_rev != split_wordno_rev[::-1]
151+
and len(split_wordno_rev) == len(W)
152+
):
153+
# print("kata bukan palindrom: ",diagno_rev)
154+
# print("----[+] diagonal no reverser: ",split_wordno_rev,W)
155+
allwords.append(diagno_rev[x::] + "v")
156+
i += 1
157+
for x in range(len(diagaf_rev)):
158+
if W[0] == diagaf_rev[x]:
159+
fillt_diagaf_rev = diagaf_rev[x:] # nxxxx
160+
split_wordaf_rev = fillt_diagaf_rev[
161+
awal_w:len_w
162+
] # 1 - panjang len_w = nana
163+
164+
if (
165+
split_wordaf_rev == W
166+
and split_wordaf_rev != split_wordaf_rev[::-1]
167+
and len(split_wordaf_rev) == len(W)
168+
):
169+
allwords.append(diagaf_rev[x::] + "^")
170+
# print("----[*] diagonal after reverser: ",split_wordaf_rev,W)
171+
i += 1
172+
return i
173+
174+
175+
if __name__ == "__main__":
176+
T = int(input(""))
177+
for x in range(T):
178+
N = int(input(""))
179+
M = int(input(""))
180+
181+
for x in range(N):
182+
brp = input("")
183+
if len(brp) == M:
184+
m.append(list(brp))
185+
else:
186+
break
187+
188+
W = input("")
189+
constarints = (
190+
1 <= T <= 100 and 1 <= N <= 100 and 1 <= M <= 100 and 1 <= len(W) <= 100
191+
)
192+
if constarints == True:
193+
panjang = diagonalFunc(0) + vertical(0) + horizontal(0)
194+
len_case.append(panjang)
195+
# print(np.array(m))
196+
m.clear()
197+
else:
198+
continue
199+
200+
for x in range(len(len_case)):
201+
print("Case {0}: {1}".format(x + 1, len_case[x]))
202+
# print(np.array(allwords))

Python/Test/main.py

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
len_case = []
2+
T = int(input(""))
3+
4+
while T > 0:
5+
A = int(input(""))
6+
B = int(input(""))
7+
K = int(input(""))
8+
9+
a = 1 <= T <= 100
10+
b = 1 <= A <= B < 10000
11+
c = 1 <= K < 10000
12+
13+
if a and b and c:
14+
jml_case = []
15+
for x in range(A, B + 1):
16+
if x % K == 0:
17+
jml_case.append(x)
18+
else:
19+
continue
20+
len_case.append(len(jml_case))
21+
T -= 1
22+
else:
23+
break
24+
25+
for x in range(len(len_case)):
26+
print("Case {0}: {1}".format(x + 1, len_case[x]))

0 commit comments

Comments
 (0)