-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathFastScanner.java
More file actions
72 lines (57 loc) · 1.5 KB
/
FastScanner.java
File metadata and controls
72 lines (57 loc) · 1.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.IOException;
import java.util.StringTokenizer;
public class FastScanner {
private int n;
private long m;
private int minus;
private BufferedReader reader = null;
private StringTokenizer tokenizer = null;
public FastScanner(InputStream source) {
reader = new BufferedReader(new InputStreamReader(source));
}
public String next() {
if (tokenizer == null || !tokenizer.hasMoreTokens()) {
try {
tokenizer = new StringTokenizer(reader.readLine());
} catch (IOException e) {
throw new RuntimeException(e);
}
}
return tokenizer.nextToken();
}
public int nextInt() {
n = 0;
minus = 0;
String str = next();
if (str.charAt(0) == '-') {
minus = 1;
}
for (int i = minus; i < str.length(); i++) {
n *= 10;
n += (int)(str.charAt(i) - '0');
}
if (minus == 1) {
n *= -1;
}
return n;
}
public long nextLong() {
m = 0;
minus = 0;
String str = next();
if (str.charAt(0) == '-') {
minus = 1;
}
for (int i = minus; i < str.length(); i++) {
m *= 10;
m += (int)(str.charAt(i) - '0');
}
if (minus == 1) {
m *= -1;
}
return m;
}
}