BJ 1244スイッチオン/オフ
16288 ワード
https://www.acmicpc.net/problem/1244
スイッチの数とステータスを入力し、アレイに格納します. スイッチの操作回数と内容を入力して解決します. 条件通りに簡単に実施する問題.
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;
public class Main {
static BufferedReader br;
static BufferedWriter bw;
static StringTokenizer st;
static boolean[] swc;
static void onoff(int idx) {
if (swc[idx])
swc[idx] = false;
else
swc[idx] = true;
}
public static void main(String[] args) throws IOException {
br = new BufferedReader(new InputStreamReader(System.in));
bw = new BufferedWriter(new OutputStreamWriter(System.out));
int N = Integer.parseInt(br.readLine());
st = new StringTokenizer(br.readLine(), " ");
swc = new boolean[N];
for (int i = 0; i < N; i++) {
if (st.nextToken().equals("1")) {
swc[i] = true;
}
}
int std_N = Integer.parseInt(br.readLine());
for (int i = 0; i < std_N; i++) {
st = new StringTokenizer(br.readLine(), " ");
if (st.nextToken().equals("1")) {
int tmp = Integer.parseInt(st.nextToken());
for (int j = 0; j < N; j++) {
if ((j + 1) % tmp == 0) {
onoff(j);
}
}
} else {
int size = 1;
int tmp = Integer.parseInt(st.nextToken()) - 1;
onoff(tmp);
while (tmp - size >= 0 && tmp + size < N && swc[tmp + size] == swc[tmp - size]) {
onoff(tmp + size);
onoff(tmp - size++);
}
}
}
for (int i = 0; i < N; i++) {
if (i != 0 && i % 20 == 0) {
System.out.println();
}
if (swc[i])
System.out.print("1 ");
else
System.out.print("0 ");
}
}
}
Reference
この問題について(BJ 1244スイッチオン/オフ), 我々は、より多くの情報をここで見つけました https://velog.io/@mraz0210/BJ1244-스위치-켜고-끄기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol