游戏任务标记
https://www.nowcoder.com/practice/2f45f0ef94724e06a4173c91ef60781c
import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner in = new Scanner(System.in);
while(in.hasNext()){
// solution1(in);
solution2(in);
}
}
/**
* 模拟法: 位运算
* 简化
* @param in
*/
private static void solution2(Scanner in){
int setupID = in.nextInt();
int checkID = in.nextInt();
int result;
if((1<=setupID&&setupID<=1024) && (1<=checkID&&checkID<=1024)){
int[] tasks = new int[32];
int m,n;
// unset
// m = (setupID-1)>>5;
// n = (setupID-1)&31;
// tasks[m] &= ~(1<<n);
// setup
m = (setupID-1)>>5;
n = (setupID-1)&31;
tasks[m] |= (1<<n);
// check
m = (checkID-1)>>5;
n = (checkID-1)&31;
result = (tasks[m]&(1<<n))>>>n;
}else{
result = -1;
}
System.out.println(result);
}
/**
* 模拟法: 位运算
* @param in
*/
private static void solution1(Scanner in){
int setupID = in.nextInt();
int checkID = in.nextInt();
int result;
if((1<=setupID&&setupID<=1024) && (1<=checkID&&checkID<=1024)){
int[] tasks = new int[32];
int m,n;
// setup
m = (setupID-1)/32;
n = (setupID-1)%32;
tasks[m] |= (1<<n);
// check
m = (checkID-1)/32;
n = (checkID-1)%32;
result = (tasks[m]&(1<<n))>>>n;
}else{
result = -1;
}
System.out.println(result);
}
}