結果
問題 | No.945 YKC饅頭 |
ユーザー | 37zigen |
提出日時 | 2019-12-06 01:46:03 |
言語 | Java21 (openjdk 21) |
結果 |
AC
|
実行時間 | 983 ms / 2,000 ms |
コード長 | 2,356 bytes |
コンパイル時間 | 2,456 ms |
コンパイル使用メモリ | 80,068 KB |
実行使用メモリ | 65,300 KB |
最終ジャッジ日時 | 2024-06-02 09:05:10 |
合計ジャッジ時間 | 39,155 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 129 ms
42,796 KB |
testcase_01 | AC | 133 ms
42,524 KB |
testcase_02 | AC | 172 ms
44,996 KB |
testcase_03 | AC | 185 ms
45,692 KB |
testcase_04 | AC | 167 ms
44,028 KB |
testcase_05 | AC | 177 ms
44,544 KB |
testcase_06 | AC | 193 ms
44,356 KB |
testcase_07 | AC | 187 ms
46,028 KB |
testcase_08 | AC | 147 ms
42,764 KB |
testcase_09 | AC | 189 ms
44,092 KB |
testcase_10 | AC | 191 ms
44,220 KB |
testcase_11 | AC | 180 ms
45,384 KB |
testcase_12 | AC | 184 ms
44,116 KB |
testcase_13 | AC | 198 ms
45,768 KB |
testcase_14 | AC | 205 ms
44,672 KB |
testcase_15 | AC | 180 ms
43,836 KB |
testcase_16 | AC | 175 ms
43,524 KB |
testcase_17 | AC | 198 ms
45,388 KB |
testcase_18 | AC | 191 ms
45,180 KB |
testcase_19 | AC | 135 ms
42,764 KB |
testcase_20 | AC | 168 ms
45,244 KB |
testcase_21 | AC | 175 ms
43,960 KB |
testcase_22 | AC | 195 ms
46,024 KB |
testcase_23 | AC | 182 ms
45,976 KB |
testcase_24 | AC | 201 ms
46,224 KB |
testcase_25 | AC | 209 ms
46,436 KB |
testcase_26 | AC | 208 ms
45,820 KB |
testcase_27 | AC | 133 ms
42,032 KB |
testcase_28 | AC | 134 ms
42,616 KB |
testcase_29 | AC | 133 ms
42,732 KB |
testcase_30 | AC | 135 ms
42,784 KB |
testcase_31 | AC | 323 ms
50,868 KB |
testcase_32 | AC | 248 ms
55,864 KB |
testcase_33 | AC | 590 ms
55,740 KB |
testcase_34 | AC | 775 ms
57,012 KB |
testcase_35 | AC | 849 ms
60,740 KB |
testcase_36 | AC | 806 ms
59,248 KB |
testcase_37 | AC | 867 ms
52,232 KB |
testcase_38 | AC | 852 ms
52,760 KB |
testcase_39 | AC | 482 ms
54,212 KB |
testcase_40 | AC | 440 ms
59,052 KB |
testcase_41 | AC | 296 ms
52,692 KB |
testcase_42 | AC | 926 ms
54,512 KB |
testcase_43 | AC | 746 ms
51,824 KB |
testcase_44 | AC | 804 ms
61,264 KB |
testcase_45 | AC | 904 ms
53,888 KB |
testcase_46 | AC | 236 ms
51,812 KB |
testcase_47 | AC | 755 ms
57,632 KB |
testcase_48 | AC | 470 ms
49,512 KB |
testcase_49 | AC | 596 ms
55,008 KB |
testcase_50 | AC | 965 ms
54,980 KB |
testcase_51 | AC | 907 ms
64,908 KB |
testcase_52 | AC | 920 ms
62,684 KB |
testcase_53 | AC | 901 ms
59,500 KB |
testcase_54 | AC | 972 ms
65,300 KB |
testcase_55 | AC | 983 ms
60,236 KB |
testcase_56 | AC | 177 ms
58,136 KB |
testcase_57 | AC | 172 ms
52,580 KB |
testcase_58 | AC | 851 ms
55,396 KB |
testcase_59 | AC | 921 ms
55,708 KB |
testcase_60 | AC | 626 ms
54,204 KB |
testcase_61 | AC | 917 ms
55,320 KB |
testcase_62 | AC | 824 ms
55,588 KB |
testcase_63 | AC | 236 ms
50,352 KB |
testcase_64 | AC | 704 ms
54,520 KB |
testcase_65 | AC | 603 ms
52,104 KB |
testcase_66 | AC | 586 ms
53,256 KB |
testcase_67 | AC | 815 ms
54,624 KB |
testcase_68 | AC | 634 ms
54,032 KB |
testcase_69 | AC | 439 ms
51,860 KB |
testcase_70 | AC | 471 ms
51,296 KB |
testcase_71 | AC | 498 ms
52,124 KB |
testcase_72 | AC | 751 ms
55,808 KB |
testcase_73 | AC | 866 ms
54,828 KB |
ソースコード
import java.io.*; import java.util.*; class Main { public static void main(String[] args) { new Main().run(); } class DJSet{ int n; int[] upper; int[] ma; int[] mi; int[] cols; public DJSet(int n){ this.n=n; upper=new int[n]; ma=new int[n]; mi=new int[n]; cols=new int[n]; Arrays.fill(upper,-1); Arrays.fill(cols,-1); for(int i=0;i<n;++i){ ma[i]=i; mi[i]=i; } } //[l,r) void paint(int l, int r, int col){ if(l>=r)return; if(cols[l]!=-1){ paint(ma[root(l)]+1,r,col); }else{ cols[l]=col; paint(l+1,r,col); } setUnion(l,r-1); } boolean equiv(int a, int b){ return root(a)==root(b); } int root(int x){ return upper[x]<0?x:(upper[x]=root(upper[x])); } void setUnion(int x,int y){ x=root(x); y=root(y); if(x==y)return; if(upper[x]<upper[y]){ x^=y;y^=x;x^=y; } upper[y]+=upper[x]; upper[x]=y; ma[y]=Math.max(ma[y],ma[x]); mi[y]=Math.min(mi[y],mi[x]); } } void run() { Scanner sc = new Scanner(System.in); int N=sc.nextInt(); int M=sc.nextInt(); DJSet ds=new DJSet(N); for(int i=0;i<M;++i){ int L=sc.nextInt(); int R=sc.nextInt(); --L;--R; String T=sc.next(); int col=-1; if(T.equals("Y")){ col=0; }else if(T.equals("K")){ col=1; }else if(T.equals("C")){ col=2; }else{ throw new AssertionError(); } ds.paint(L,R+1,col); } int[] cnt=new int[3]; for(int i=0;i<N;++i){ if(ds.cols[i]!=-1) cnt[ds.cols[i]]++; } System.out.println(cnt[0]+" "+cnt[1]+" "+cnt[2]); } void tr(Object...objects){ System.out.println(Arrays.deepToString(objects)); } }