Untitled
unknown
plain_text
2 years ago
29 kB
11
Indexable
Ban Bong Bay
package Ban_Bong_Bay;
import java.io.FileInputStream;
import java.util.Scanner;
public class ban_bong_bay {
static int n;
static long Ans;
static long [] visit;
static long[] arr;
static void backtrack(long i, long sum, int count) {
if (count == n) {
if (Ans < sum) Ans = sum;
return;
}
for (int k = 0; k < n; k++) {
if (visit[k] == 0) {
visit[k] = 1;
long tmp = score(k);
i++;
backtrack(k, sum+tmp, count + 1);
i--;
visit[k] = 0;
}
}
}
static long score(int i) {
long a = 0;
long b = 0;
int l = i;
int r = i;
while (l > 0) {
l--;
if (visit[l] == 0) {
a = arr[l];
break;
}
}
while (r < n-1) {
r++;
if (visit[r] == 0) {
b = arr[r];
break;
}
}
if (a == 0 && b == 0) return arr[i];
if (a == 0 && b != 0) return b;
if (a != 0 && b == 0) return a;
return a*b;
}
public static void main(String[] args) throws Exception{
System.setIn(new FileInputStream("D://Trainee//SRV_training//src//Ban_Bong_Bay//bong_bay.txt"));
Scanner sc = new Scanner(System.in);
int T = sc.nextInt();
for (int test_case = 1; test_case <= T; test_case++) {
n = sc.nextInt();
arr = new long [n];
visit = new long [n];
for(int i = 0; i < n; i++) {
arr[i] = sc.nextInt();
}
Ans = 0;
backtrack(0, 0, 0);
System.out.println("#" + test_case + " " + Ans);
}
}
}
############################################################
Bao ve NongTrang
package Bao_Ve_Nong_Trai;
import java.io.FileInputStream;
import java.util.Scanner;
public class bao_ve_nong_trai {
static int MAX_SIZE = 1000000;
static int [][] queue = new int[2][MAX_SIZE];
static int rear, front;
static void push(int x, int y) {
if (rear == MAX_SIZE-1) rear = -1;
rear++;
queue[0][rear] = x;
queue[1][rear] = y;
}
static void pop() {
if (front == MAX_SIZE-1) front = -1;
front++;
}
static int tx() {
return queue[0][front];
}
static int ty() {
return queue[1][front];
}
static boolean isEmpty() {
return front == rear;
}
static int row, col;
static int [][] hill;
static int Ans;
static int [][] visit;
static int [] dx = {0, 1, 1, 1, 0, -1, -1, -1};
static int [] dy = {1, 1, 0, -1, -1, -1, 0, 1};
static boolean flag;
static void bfs(int x, int y) {
visit[x][y] = 1;
push(x, y);
while (!isEmpty()) {
pop();
int a = tx();
int b = ty();
for (int i = 0; i < 8; i++) {
int x1 = a + dx[i];
int y1 = b + dy[i];
if (x1 >= 0 && y1 >= 0 && x1 < row && y1 < col) {
if (hill[a][b] == hill[x1][y1] && visit[x1][y1] == 0) {
visit[x1][y1] = 1;
push(x1, y1);
} else if (hill[a][b] < hill[x1][y1]&& flag) {
flag = false;
}
}
}
}
}
public static void main(String[] args) throws Exception {
System.setIn(new FileInputStream("D://Trainee//SRV_training//src//Bao_Ve_Nong_Trai//nongTrai.txt"));
Scanner sc = new Scanner(System.in);
int T = sc.nextInt();
hill = new int [705][705];
visit = new int [705][705];
for (int test_case = 1; test_case <= T; test_case++) {
rear = front = -1;
row = sc.nextInt();
col = sc.nextInt();
Ans = 0;
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++) {
hill[i][j] = sc.nextInt();
visit[i][j]=0;
}
}
for (int i = 0; i < row; i++) {
for (int j = 0; j < col; j++) {
if (visit[i][j] == 0 && hill[i][j] != 0) {
flag = true;
bfs(i, j);
if (flag) {
Ans++;
}
}
}
}
System.out.println("#" + test_case + " " + Ans);
}
}
}
#######################################################
Cleaning robot
package Cleaning_Robot;
import java.io.FileInputStream;
import java.util.Scanner;
public class cleaning_robot {
static int MAX_SIZE = 10000;
static int [][] queue = new int [2][MAX_SIZE];
static int front, rear;
static void push (int x, int y) {
if (rear == MAX_SIZE-1) rear = -1;
rear++;
queue[0][rear] = x;
queue[1][rear] = y;
}
static void pop() {
if (front == MAX_SIZE-1) front = -1;
front++;
}
static int tx() {
return queue[0][front];
}
static int ty() {
return queue[1][front];
}
static boolean isEmpty() {
return rear == front;
}
static int [] dx = {0, 0, 1, -1};
static int [] dy = {1, -1, 0, 0};
static void reset() {
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
d[i][j] = 0;
}
}
}
static int bfs (int x1, int y1, int x2, int y2) {
reset();
front = rear = -1;
push(x1, y1);
while (!isEmpty()) {
pop();
int a = tx();
int b = ty();
for (int i = 0; i < 4; i++) {
int x = a + dx[i];
int y = b + dy[i];
if (x >= 0 && y >= 0 && x < m && y < n && d[x][y] == 0 && map[x][y] != 2) {
d[x][y] = d[a][b] + 1;
push(x, y);
}
if (x == x2 && y == y2) {
int h = d[a][b] +1;
return h;
}
}
}
return 0;
}
static void createDirty() {
for (int i = 0; i < countDirty; i++ ) {
for (int j = i+1; j <= countDirty; j++) {
if (i != j) dirty[j][i] = dirty[i][j] = bfs(arr[0][i], arr[1][i], arr[0][j], arr[1][j]);
}
}
}
static void backtrack (int ind, int sumDir, int cntDir) {
if (cntDir == countDirty) {
if (sumDir < Ans) Ans = sumDir;
return;
}
if (Ans < sumDir) return;
for (int i = 1; i <= countDirty; i++) {
if (visitDirty[i] == 0) {
visitDirty[i] = 1;
backtrack(i, sumDir + dirty[ind][i], cntDir+1);
visitDirty[i] = 0;
}
}
}
static int Ans;
static int m, n;
static int [][] map, arr, dirty;
static int [][] d;
static int [] visitDirty;
static int rx, ry;
static int countDirty;
public static void main(String[] args) throws Exception {
System.setIn(new FileInputStream("D://Trainee//SRV_training//src//Cleaning_Robot//robot.txt"));
Scanner sc = new Scanner(System.in);
int T = sc.nextInt();
for (int test_case = 1; test_case <= T; test_case++) {
m = sc.nextInt();
n = sc.nextInt();
map = new int [m][n];
d = new int [m][n];
arr = new int [2][11];
dirty = new int [11][11];
countDirty = 0;
int k = 1;
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
map[i][j] = sc.nextInt();
if (map[i][j] == 3) {
arr[0][0] = i;
arr[1][0] = j;
}
if (map[i][j] == 1) {
arr[0][k] = i;
arr[1][k] = j;
k++;
countDirty++;
}
}
}
Ans = 1000000;
createDirty();
visitDirty = new int [countDirty+1];
for (int i = 0; i <= countDirty; i++) {
int sum = 0;
for (int j = 0; j <= countDirty; j++) {
sum += dirty[i][j];
}
if (sum == 0) {
Ans = -1;
break;
}
}
System.out.println("Case #" + test_case);
if (Ans == -1) {
System.out.println(-1);;
}
else {
Ans = 1000000;
backtrack(0, 0, 0);
System.out.println(Ans);
}
}
}
}
###################################
Connect_Processor
package Connect_Processor;
import java.io.FileInputStream;
import java.util.Scanner;
public class connect_processor {
static int count;
static int n;
static int [][] map;
static int [] dx = {1, 0, -1, 0};
static int [] dy = {0, 1, 0, -1};
static int [][] arr = new int [2][20];
static int max, Ans;
/*
static void Try (int i, int wire, int wire_temp, int core, int core_temp) {
if (i == count) {
if (core < core_temp) {
if (wire > wire_temp) {
max = core_temp;
Ans = wire_temp;
}
}
min = wire_temp = core_temp = 0;
return;
}
for (int j = 0; j < 4; j++) {
if (check(i, j)) {
Try(i+1, wire, min, core, core_temp + 1);
map[x1][y1] = 0;
}
}
Try(1, wire, min, core, core_temp);
}
*/
static void Try(int tempCore, int coreNum, int wireLen) {
if (tempCore == count) {
if (coreNum > max) {
max = coreNum;
Ans = wireLen;
}
else if (coreNum == max && wireLen < Ans) Ans = wireLen;
return;
}
boolean flag = true;
for (int h = 0; h < 4; h++) {
if (check(tempCore, h)) {
flag = false;
int len = go(tempCore, h);
Try(tempCore + 1, coreNum + 1, wireLen + len);
go(tempCore, h);
}
}
if (flag) Try(tempCore+1, coreNum, wireLen);
}
static boolean check(int core, int h) {
int tempX = arr[0][core] + dx[h];
int tempY = arr[1][core] + dy[h];
while(tempX >= 0 && tempX < n && tempY >= 0 && tempY < n) {
if (map[tempX][tempY] != 0) return false;
tempX += dx[h];
tempY+= dy[h];
}
return true;
}
static int go (int core, int h) {
int len = 0;
int tempX = arr[0][core] + dx[h];
int tempY = arr[1][core] + dy[h];
while(tempX >= 0 && tempX < n && tempY >= 0 && tempY < n) {
map[tempX][tempY] = 1 - map[tempX][tempY];
len++;
tempX += dx[h];
tempY+= dy[h];
}
return len;
}
public static void main(String[] args) throws Exception {
System.setIn(new FileInputStream("D://Trainee//SRV_training//src//Connect_Processor//processor.txt"));
Scanner sc = new Scanner(System.in);
int T = sc.nextInt();
for (int test_case = 1; test_case <= T; test_case++ ){
Ans = 10000;
n = sc.nextInt();
map = new int [n][n];
count = 0;
int k = 0;
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
map[i][j] = sc.nextInt();
if ((i == 0 || j == 0 || i == n-1 || j == n-1) && map[i][j] != 0) {
map[i][j] = 3;
}
if (map[i][j] == 1) {
count++;
arr[0][k] = i;
arr[1][k] = j;
k++;
}
}
}
max = 0;
Try(0, 0, 0);
System.out.println("#" + test_case + " " + Ans);
}
}
}
################################################
Cutting_a_Piece_of_Colored_Paper
package Cutting_a_Piece_of_Colored_Paper;
import java.io.FileInputStream;
import java.util.Scanner;
public class cutPaper {
static int n;
static int [][] paper;
static int [] dx = {0, 1, 1};
static int [] dy = {1, 1, 0};
static int count1;
static int count0;
static void cutting (int x, int y, int n) {
if (n == 1) {
if (paper[x][y] == 1) count1++;
if (paper[x][y] == 0) count0++;
return;
}
boolean check = true;
for (int i = x; i < x+n-1; i++) {
if (!check) break;
for (int j = y; j < y+n-1; j++) {
if (paper[i][j] != paper[i][j+1] || paper[i][j] != paper[i+1][j+1] || paper[i][j] != paper[i+1][j]) {
check = false;
break;
}
}
}
if (check && paper[x][y] == 1) {
count1++;
return;
} else if (check && paper[x][y] == 0) {
count0++;
return;
}
if (!check) {
cutting(x, y, n/2);
cutting(x + n/2, y, n/2);
cutting(x, y + n/2, n/2);
cutting(x + n/2, y + n/2, n/2);
}
}
public static void main(String[] args) throws Exception {
System.setIn(new FileInputStream("D://Trainee//SRV_training//src//Cutting_a_Piece_of_Colored_Paper//paper.txt"));
Scanner sc = new Scanner(System.in);
int T = sc.nextInt();
for (int test_case = 1; test_case <= T; test_case++) {
n = sc.nextInt();
paper = new int [n][n];
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
paper[i][j] = sc.nextInt();
}
}
count1 = 0;
count0 = 0;
cutting(0, 0, n);
System.out.println("Case #"+test_case);
System.out.println(count0+" "+count1);
}
}
}
####################################################
/*
package DJS;
class djs {
static int MAX_DJS = 100;
static int [] data = new int [MAX_DJS];
static void make_set(int x) {
data[x] = x;
}
static int find_set(int x) {
if (x == data[x]) return x;
else return find_set(data[x]);
}
static void _union(int x, int y) {
data[find_set(y)] = find_set(x);
}
static void init() {
for (int i = 0; i < MAX_DJS; i++) {
data[i] = 0;
}
}
}
public class DJS {
public static void main(String[] args) {
}
}
*/
########################################################
Fast_Robot
package Fast_Robot;
import java.io.FileInputStream;
import java.util.Scanner;
public class fast_robot {
static int MAX_SIZE = 10000;
static int [][] queue = new int [2][MAX_SIZE];
static int rear, front;
static void push (int x, int y) {
if (rear == MAX_SIZE - 1) rear = -1;
rear++;
queue[0][rear] = x;
queue[1][rear] = y;
}
static void pop () {
if (front == MAX_SIZE - 1) front = -1;
front++;
}
static int tx() {
return queue[0][front];
}
static int ty() {
return queue[1][front];
}
static boolean isEmpty() {
return rear == front;
}
static int [] dx = {1, 0, -1, 0};
static int [] dy = {0, 1, 0, -1};
static void bfs(int x, int y) {
push(x, y);
while (!isEmpty()) {
pop();
int a = tx();
int b = ty();
for (int i = 0; i < 4; i++) {
int x1 = tx() + dx[i];
int y1 = ty() + dy[i];
while (x1 >= 0 && y1 >= 0 && x1 < m && y1 < n && map[x1][y1] == 0) {
if (visit[x1][y1] == -1) {
visit[x1][y1] = visit[a][b] + 1;
push(x1, y1);
}
if (x1 == ex && y1 == ey) {
return;
}
x1 += dx[i];
y1 += dy[i];
}
}
}
}
static int n, m, sx, sy, ex, ey;
static int [][] map, visit;
public static void main(String[] args) throws Exception{
System.setIn(new FileInputStream("D://Trainee//SRV_training//src//Fast_Robot//robot.txt"));
Scanner sc = new Scanner(System.in);
int T = sc.nextInt();
for (int test_case = 1; test_case <= T; test_case++) {
rear = front = -1;
n = sc.nextInt();
m = sc.nextInt();
map = new int [m][n];
visit = new int [m][n];
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
visit[i][j] = -1;
}
}
sy = sc.nextInt() - 1;
sx = sc.nextInt() - 1;
ey = sc.nextInt() - 1;
ex = sc.nextInt() - 1;
sc.nextLine();
for (int i = 0; i < m; i++) {
String a = sc.nextLine();
for (int j = 0; j < n; j++) {
map[i][j] = a.charAt(j) - '0';
}
}
bfs(sx, sy);
System.out.println(visit[ex][ey]);
}
}
}
###################################
FindCycle
package FindCycle;
import java.io.FileInputStream;
import java.util.Scanner;
public class findCycle {
static int [] checkCycle;
static int x;
static int y;
static int [][] arr;
static boolean check;
static void Try(int a){
if(check) return;
checkCycle[a]=0;
for(int i=a+1; i< y; i++){
if(arr[i][0] == arr[a][1]){
for(int j=0; j<i;j++){
if(arr[i][1] == arr[j][0]){
check =true;
}
Try(i);
checkCycle[a]=1;
}
}
}
}
public static void main(String[] args) throws Exception {
System.setIn(new FileInputStream("D://Trainee//SRV_training//src//FindCycle//findCycle.txt"));
Scanner sc = new Scanner(System.in);
int T = sc.nextInt();
for (int testcase = 1; testcase <= T; testcase++){
System.out.println("Case #" + testcase);
int x = sc.nextInt();
y = sc.nextInt();
int Ans = 0;
arr = new int [y][2];
for (int i = 0; i < y; i++) {
arr[i][0] = sc.nextInt();
arr[i][1] = sc.nextInt();
}
checkCycle = new int [x];
check = false;
Try(0);
if (check) Ans = 1;
System.out.println(Ans);
}
}
}
##################################
package findMode;
import java.io.FileInputStream;
import java.util.Scanner;
public class findMode {
public static void main(String[] args) throws Exception{
System.setIn(new FileInputStream("D://Trainee//SRV_training//src//findMode//mode.txt"));
Scanner sc = new Scanner(System.in);
for(int test_case = 1; test_case <= 10; test_case++) {
sc.nextInt();
int arr [] = new int [201];
for (int i = 0; i < 1000; i++) {
int mark = sc.nextInt();
arr [mark] += 1;
}
int max = 0;
int Answer = 0;
for (int i = 0; i < 201; i++) {
if (arr[i] >= max) {
max = arr[i];
}
}
for (int i = 200; i >= 0; i--) {
if (arr[i] == max) {
Answer = i;
break;
}
}
System.out.println("#" + test_case + " " + Answer);
}
}
}
########################################3
package Gold_mining;
import java.io.FileInputStream;
import java.util.Scanner;
public class gold_mining {
static int MAX_SIZE = 1000;
static int [][] queue = new int [2][MAX_SIZE];
static int rear, front;
static void push(int x, int y) {
if (rear == MAX_SIZE-1) {
rear = -1;
}
rear++;
queue[0][rear] = x;
queue[1][rear] = y;
}
static void pop() {
if (front == MAX_SIZE-1) {
front = -1;
}
front++;
}
static int tx () {
return queue[0][front];
}
static int ty () {
return queue[1][front];
}
static boolean isEmpty() {
return rear == front;
}
static int n, m;
static int [][] map;
static int [][] temp;
static int [][] arr;
static int [] check;
static int [][] gold;
static int u;
static int Ans;
static int max;
static void resetMap() {
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
map[i][j] = temp[i][j];
}
}
for (int i = 0; i < m; i++) {
map[arr[0][i]][arr[1][i]] = -1;
}
}
static void resetGold() {
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
gold[i][j] = 0;
}
}
}
static int [] dx = {1, 0, -1, 0};
static int [] dy = {0, 1, 0, -1};
static void bfs(int x, int y) {
map[x][y] = 0;
push(x,y);
while (!isEmpty()) {
pop();
int a = tx();
int b = ty();
for (int i = 0; i < 4; i++) {
int x1 = a + dx[i];
int y1 = b + dy[i];
if (x1 >= 0 && y1 >= 0 && x1 < n && y1 < n && map[x1][y1] != 0) {
gold[x1][y1] = gold[a][b] + 1;
map[x1][y1] = 0;
push(x1,y1);
}
}
}
}
static void findMax() {
int a, b = 0;
for (int i = 0; i < m; i++) {
a = gold[arr[0][i]][arr[1][i]];
if (b < a) {
b = a;
check[u] = b;
}
}
u++;
}
static int findMin() {
int min = 100000;
for (int i = 0; i < n*n; i++) {
if (check[i] != 0) {
if (min > check[i]) min = check[i];
}
}
for (int i = 0; i < n*n; i++) {
check[i] = 0;
}
return min;
}
public static void main(String[] args) throws Exception {
System.setIn(new FileInputStream("D://Trainee//SRV_training//src//Gold_mining//gold.txt"));
Scanner sc = new Scanner(System.in);
int T = sc.nextInt();
for (int test_case = 1; test_case <= T; test_case++) {
u = 0;
Ans = 0;
front = rear = -1;
max = 0;
n = sc.nextInt();
check = new int [n*n];
map = new int [n][n];
temp = new int [n][n];
gold = new int [n][n];
m = sc.nextInt();
arr = new int [2][m];
for (int i = 0; i < m; i++) {
arr[0][i] = sc.nextInt()-1;
arr[1][i] = sc.nextInt()-1;
}
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
map[i][j] = sc.nextInt();
temp[i][j] = map[i][j];
}
}
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if (map[i][j] == 1) {
bfs(i, j);
findMax();
resetGold();
resetMap();
}
}
}
Ans = findMin();
System.out.println("Case #" + test_case);
System.out.println(Ans);
}
}
}
#############################################
package Grid_Axit;
import java.io.FileInputStream;
import java.util.Scanner;
public class grid_acid {
static int MAX_SIZE = 100000;
static int [][] queue = new int [MAX_SIZE][2];
static int rear, front;
static void push(int x, int y) {
if(rear == MAX_SIZE - 1) rear = -1;
rear++;
queue[rear][0] = x;
queue[rear][1] = y;
}
static void pop() {
if(front == MAX_SIZE -1) front = -1;
front++;
}
static boolean isEmpty() {
return rear == front;
}
static int m, n, ex, ey, ax, ay;
static int count1, count2;
static int [][] map;
static int [] dx = {0, 1, 0, -1};
static int [] dy = {1, 0, -1, 0};
static void bfs(int x, int y) {
push(x, y);
while (!isEmpty()) {
pop();
int a = queue[front][0];
int b = queue[front][1];
for(int i = 0; i < 4; i++) {
int x1 = a + dx[i];
int y1 = b + dy[i];
if (x1 >= 0 && y1 >= 0 && x1 < n && y1 < m && map[x1][y1] == 1) {
map[x1][y1] = map[a][b] + 1;
push(x1, y1);
}
}
System.out.println();
}
}
static void checkCell() {
for(int i = 0; i < 4; i++) {
int x1 = ex + dx[i];
int y1 = ey + dy[i];
if (x1 >= 0 && y1 >= 0 && x1 < n && y1 < m) {
if (map[x1][y1] > 1 || (map[x1][y1] == 1 && x1 == ax && y1 == ay)) {
if (map[x1][y1] > count1) {
count1 = map[x1][y1];
}
} else {
count1 = count2 = -1;
return;
}
}
}
for(int i = 0; i < n; i++) {
for(int j = 0; j < m; j++){
if (map[i][j] == 1) {
count2 = -1;
return;
} else if (map[i][j] > count2){
count2 = map[i][j];
}
}
}
}
public static void main(String[] args) throws Exception{
System.setIn(new FileInputStream("D://Trainee//SRV_training//src//Grid_Axit//acid.txt"));
Scanner sc = new Scanner(System.in);
int T = sc.nextInt();
for (int test_case = 1; test_case <= T; test_case++) {
rear = front = -1;
n = sc.nextInt();
m = sc.nextInt();
ax = sc.nextInt() - 1;
ay = sc.nextInt() - 1;
map = new int [n][m];
boolean flag = true;
count1 = count2 = -1;
for(int i = 0; i < n; i++) {
for(int j = 0; j < m; j++){
map[i][j] = sc.nextInt();
if(map[i][j] == 2) {
if(i == 0 || i == n - 1 || j == 0 || j == m - 1) {
System.out.println("Case #" + test_case);
System.out.println(count1 + " " + count2);
flag = false;
}
ex = i;
ey = j;
}
}
}
if (!flag) continue;
boolean check = true;
// neu acid do vao da thi return -1
if (map[ax][ay] != 0) {
bfs(ax, ay);
}
else {
check = false;
}
if (check) {
checkCell();
}
System.out.println("Case #" + test_case);
System.out.println(count1 + " " + count2);
}
}
}
#####################################
package Hugo;
import java.io.FileInputStream;
import java.util.Scanner;
public class hugo1 {
static int MAX_SIZE = 10000;
static int [][] queue = new int [2][MAX_SIZE];
static int rear, front;
static void push (int x, int y) {
if (rear == MAX_SIZE - 1) rear = -1;
rear++;
queue[0][rear] = x;
queue[1][rear] = y;
}
static void pop() {
if (front == MAX_SIZE - 1) front = -1;
front++;
}
static boolean isEmpty() {
return rear == front;
}
static int m, n;
static int hx, hy;
static int [][] visit, fire, lake, diamond, exit;
static int sumDia;
static int [] dx = {1, 0, -1, 0};
static int [] dy = {0, 1, 0, -1};
static void bfsFire() {
while (!isEmpty()) {
pop();
int a = queue[0][front];
int b = queue[1][front];
for (int i = 0; i < 4; i++) {
int x1 = a + dx[i];
int y1 = b + dy[i];
if (x1 >= 0 && y1 >= 0 && x1 < n && y1 < m && lake[x1][y1] == 0 && fire[x1][y1] == 10000) {
fire[x1][y1] = fire[a][b] + 1;
push(x1, y1);
}
}
}
}
static void backtrackHugo(int x, int y, int time, int sum) {
if (exit[x][y] == 1) {
if (sumDia < sum) sumDia = sum;
}
for (int i = 0; i < 4; i++) {
int x1 = x + dx[i];
int y1 = y + dy[i];
if (x1 >= 0 && y1 >= 0 && x1 < n && y1 < m && visit[x1][y1] == 0) {
if(time + 1 < fire[x1][y1] && lake[x1][y1] == 0) {
visit[x1][y1] = 1;
backtrackHugo(x1, y1, time+1, sum+diamond[x1][y1]);
visit[x1][y1] = 0;
} else if (lake[x1][y1] == 1) {
visit[x1][y1] = 1;
backtrackHugo(x1, y1, time+2, sum+diamond[x1][y1]);
visit[x1][y1] = 0;
}
}
}
}
public static void main(String[] args) throws Exception{
System.setIn(new FileInputStream("D://Trainee//SRV_training//src//Hugo//hugo.txt"));
Scanner sc = new Scanner(System.in);
int T = sc.nextInt();
for (int test_case = 1; test_case <= T; test_case++) {
front = rear = -1;
n = sc.nextInt();
m = sc.nextInt();
visit = new int [n][m];
fire = new int [n][m];
lake = new int [n][m];
exit = new int [n][m];
diamond = new int [n][m];
// input hugo
hx = sc.nextInt()-1;
hy = sc.nextInt()-1;
//input fire
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
fire[i][j] = 10000;
}
}
int a = 0;
int b = 0;
int num = sc.nextInt();
for (int i = 0; i < num; i++) {
a = sc.nextInt()-1;
b = sc.nextInt()-1;
fire[a][b] = 0;
push(a, b);
}
//input lake
num = sc.nextInt();
for (int i = 0; i < num; i++) {
a = sc.nextInt()-1;
b = sc.nextInt()-1;
lake[a][b] = 1;
}
//input exit
num = sc.nextInt();
for (int i = 0; i < num; i++) {
a = sc.nextInt()-1;
b = sc.nextInt()-1;
exit[a][b] = 1;
}
//input diamond
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
a = sc.nextInt();
if (a != 0) diamond[i][j] = a;
}
}
sumDia = -1;
bfsFire();
visit[hx][hy] = 1;
backtrackHugo(hx, hy, 0, diamond[hx][hy]);
System.out.println("Case #" + test_case);
System.out.println(sumDia);
}
}
}
#######################################
package Hugo_Giao_Hang;
import java.io.FileInputStream;
import java.util.Scanner;
public class hugo_giao_hang {
static int hx, hy, sx, sy, n, Ans;
static int [][] arr, map;
static int [] visit;
static int distance(int i, int j) {
int a = arr[i][0] - arr[j][0];
int b = arr[i][1] - arr[j][1];
if (a < 0) a = 0 - a;
if (b < 0) b = 0 - b;
return a+b;
}
static void createMatrix() {
for (int i = 0; i < n + 2; i++) {
for (int j = 0; j < n + 2; j++) {
int x = distance(i, j);
map[i][j] = x;
}
}
}
static void Try(int x, int sum_distance, int count) {
if (count == n) {
sum_distance += map[x][n+1];
if (sum_distance < Ans) Ans = sum_distance;
return;
}
if (Ans < sum_distance) return;
for (int i = 1; i <= n; i++) {
if (visit[i] == 0) {
visit[i] = 1;
Try(i, sum_distance + map[x][i], count+1);
visit[i] = 0;
}
}
}
public static void main(String[] args) throws Exception{
System.setIn(new FileInputStream("D://Trainee//SRV_training//src//Hugo_Giao_Hang//giao_hang.txt"));
Scanner sc = new Scanner(System.in);
int T = sc.nextInt();
for (int test_case = 1; test_case <= T; test_case++) {
sx = sc.nextInt();
sy = sc.nextInt();
hx = sc.nextInt();
hy = sc.nextInt();
n = sc.nextInt();
arr = new int [n+2][2];
for(int i = 1; i < n+1; i++) {
arr[i][0] = sc.nextInt();
arr[i][1] = sc.nextInt();
}
arr[0][0] = sx;
arr[0][1] = sy;
arr[n+1][0] = hx;
arr[n+1][1] = hy;
map = new int [n+2][n+2];
createMatrix();
Ans = 1000000000;
visit = new int [n+2];
visit[0] = 1;
Try(0, 0, 0);
System.out.println("Case #" + test_case + " " + Ans);
}
}
}
###############################
package inorderTraversal;
import java.io.FileInputStream;
import java.util.Scanner;
public class inorder {
static void Inorder(char [] c, int [] left, int [] right, int i) {
if (c[i] == 0) return;
Inorder(c, left, right, left[i]);
System.out.print(c[i]);
Inorder(c, left, right, right[i]);
}
public static void main(String[] args) throws Exception{
System.setIn(new FileInputStream("D://Trainee//SRV_training//src//inorderTraversal//inorder.txt"));
Scanner sc = new Scanner(System.in);
int N;
int[] Firstchild, Secondchild;
char[] Alpha;
for(int test_case = 1; test_case <= 10; test_case++) {
N = sc.nextInt();
Firstchild = new int [N+1];
Secondchild = new int [N+1];
Alpha = new char[N+1];
for(int i = 0; i < N; i++) {
int addr = sc.nextInt();
String buf = sc.next();
Alpha[addr] = buf.charAt(0);
if(addr*2 <= N) {
Firstchild[addr] = sc.nextInt();
if(addr*2 + 1 <= N) {
Secondchild[addr] = sc.nextInt();
}
}
}
System.out.print("#" + test_case + " ");
Inorder(Alpha, Firstchild, Secondchild, 1);
System.out.println();
}
}
}
################################3
package Ladder1;
import java.io.FileInputStream;
import java.util.Scanner;
public class ladder {
static int SIZE = 100;
static int [][] matrix = new int [SIZE][SIZE];
public static void main(String[] args) throws Exception {
System.setIn(new FileInputStream("D://Trainee//SRV_training//src//Ladder1//ladder.txt"));
Scanner sc = new Scanner(System.in);
for(int test_case = 1; test_case <= 10; test_case++) {
int T = sc.nextInt();
int x = 0;
int y = 0;
for (int i = 0; i < SIZE; i++) {
for (int j = 0; j < SIZE; j++) {
matrix[i][j] = sc.nextInt();
if (matrix[i][j] == 2) {
x = i;
y = j;
}
}
}
while (x > 0) {
matrix[x][y] = 0;
if (y-1 >= 0 && matrix[x][y-1] == 1) {
y--;
} else if (y+1 < 100 && matrix[x][y+1] == 1) {
y++;
} else {
x--;
}
}
System.out.println("#"+test_case+ " "+y);
}
}
}
Editor is loading...