Submission #00081


ソースコード

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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
import java.io.*;
import java.util.*;
import java.util.function.*;
import java.util.stream.*;
public class Main{
static FastScanner s=new FastScanner(System.in);
void solve(){
var sb=new StringBuilder();
int member=gInt(),problem=gInt();
var status=new int[member];
for(int q:rep(gInt())) {
if(gInt()==0) {
status[gInt()-1]|=(1<<gInt())*gInt();
}else {
int id=gInt()-1,n=gInt(),b=0;
for(int i=0;i<n;++i)
b|=1<<gInt();
sb.append((status[id]&b)==b?"Yes\n":"No\n");
}
}
System.out.print(sb);
}
public static void main(String[] $){
new Main().solve();
}
int gInt(){
return s.nextInt();
}
long gLong(){
return s.nextLong();
}
double gDouble(){
return Double.parseDouble(s.next());
}
SupplyingIterator<Integer> ints(int n){
return new SupplyingIterator<>(n,this::gInt);
}
SupplyingIterator<Long> longs(int n){
return new SupplyingIterator<>(n,this::gLong);
}
SupplyingIterator<Double> doubles(int n){
return new SupplyingIterator<>(n,this::gDouble);
}
SupplyingIterator<String> strs(int n){
return new SupplyingIterator<>(n,s::next);
}
Range rep(int i){
return Range.rep(i);
}
Range rep(int f,int t,int d){
return Range.rep(f,t,d);
}
Range rep(int f,int t){
return rep(f,t,1);
}
Range rrep(int f,int t){
return rep(t,f,-1);
}
IntStream INTS(int n){
return IntStream.generate(this::gInt).limit(n);
}
Stream<String> STRS(int n){
return Stream.generate(s::next).limit(n);
}
}
class FastScanner{
private final BufferedInputStream in;
private static final int bufSize=1<<16;
private final byte buf[]=new byte[bufSize];
private int i=bufSize,k=bufSize;
private final StringBuilder str=new StringBuilder();
FastScanner(InputStream in){
this.in=new BufferedInputStream(in,bufSize);
}
int nextInt(){
return (int)nextLong();
}
long nextLong(){
int c;
long x=0;
boolean sign=true;
while((c=nextChar())<=32)
;
if(c=='-'){
sign=false;
c=nextChar();
}
if(c=='+'){
c=nextChar();
}
while(c>='0'){
x=x*10+(c-'0');
c=nextChar();
}
return sign?x:-x;
}
private int nextChar(){
if(i==k){
try{
k=in.read(buf,i=0,bufSize);
}catch(IOException e){
System.exit(-1);
}
}
return i>=k?-1:buf[i++];
}
String next(){
int c;
str.setLength(0);
while((c=nextChar())<=32&&c!=-1)
;
if(c==-1)
return null;
while(c>32){
str.append((char)c);
c=nextChar();
}
return str.toString();
}
String nextLine(){
int c;
str.setLength(0);
while((c=nextChar())<=32&&c!=-1)
;
if(c==-1)
return null;
while(c!='\n'){
str.append((char)c);
c=nextChar();
}
return str.toString();
}
}
class SupplyingIterator<T> implements Iterable<T>,Iterator<T>{
private int remain;
Supplier<T> supplier;
SupplyingIterator(int t,Supplier<T> supplier){
this.remain=t;
this.supplier=supplier;
}
@Override
public Iterator<T> iterator(){
return this;
}
@Override
public boolean hasNext(){
return remain>0;
}
@Override
public T next(){
--remain;
return supplier.get();
}
}
class Range implements Iterable<Integer>,PrimitiveIterator.OfInt{
public final int from,to,d;
private int cur;
Range(int from,int to,int d){
this.from=from;
this.cur=from-d;
this.to=to;
this.d=d;
}
Range(int n){
this(0,n-1,1);
}
@Override
public Iterator<Integer> iterator(){
return this;
}
@Override
public boolean hasNext(){
return cur+d==to||(cur!=to&&(cur<to==cur+d<to));
}
@Override
public int nextInt(){
return cur+=d;
}
protected final int CHARACTERISTICS=Spliterator.SIZED|Spliterator.DISTINCT|Spliterator.IMMUTABLE|Spliterator.NONNULL;
@Override
public Spliterator.OfInt spliterator(){
return Spliterators.spliterator(this,(to-from)/d+1,CHARACTERISTICS);
}
IntStream stream(){
return d==1?IntStream.rangeClosed(from,to):java.util.stream.StreamSupport.intStream(this.spliterator(),false);
}
static Range rep(int i){
return new Range(i);
}
static Range rep(int f,int t,int d){
return new Range(f,t,d);
}
static Range rep(int f,int t){
return rep(f,t,1);
}
static Range rrep(int f,int t){
return rep(t,f,-1);
}
}

ステータス

項目 データ
問題 0008 - 人権判定
ユーザー名 fal_rnd
投稿日時 2018-08-22 11:32:10
言語 Java
状態 Accepted
得点 10
ソースコード長 4383 Byte
最大実行時間 288 ms
最大メモリ使用量 40296 KB

セット

セット 得点 Cases
1 Easy 1 / 1 *easy
2 Normal 2 / 2 *normal
3 Hard 3 / 3 *hard
4 Bit 4 / 4 True*

テストケース

ファイル名 状態 実行時間 メモリ使用量 #
Input01_easy AC 100 ms 13796 KB
1
Input02_easy AC 110 ms 14024 KB
1
Input03_easy AC 106 ms 13908 KB
1
Input04_normal AC 122 ms 13992 KB
2
Input05_normal AC 101 ms 13368 KB
2
Input06_normal AC 106 ms 13928 KB
2
Input07_hard AC 103 ms 14004 KB
3
Input08_hard AC 108 ms 13940 KB
3
Input09_hard AC 107 ms 14048 KB
3
TrueInput01 AC 288 ms 26184 KB
4
TrueInput02 AC 253 ms 27904 KB
4
TrueInput03 AC 249 ms 29288 KB
4
TrueInput04 AC 252 ms 30728 KB
4
TrueInput05 AC 258 ms 32112 KB
4
TrueInput06 AC 254 ms 29200 KB
4
TrueInput07 AC 247 ms 35736 KB
4
TrueInput08 AC 269 ms 37184 KB
4
TrueInput09 AC 246 ms 38444 KB
4
TrueInput10 AC 258 ms 40296 KB
4