File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ ``` java
2+ import java.io.* ;
3+ import java.util.* ;
4+
5+ public class Main {
6+
7+ static class Node {
8+ Map<String , Node > children = new TreeMap<> ();
9+ }
10+
11+ public static void main (String [] args ) throws IOException {
12+ BufferedReader br = new BufferedReader (new InputStreamReader (System . in));
13+ int N = Integer . parseInt(br. readLine());
14+
15+ Node root = new Node ();
16+
17+ for (int i = 0 ; i < N ; i++ ) {
18+ StringTokenizer st = new StringTokenizer (br. readLine());
19+ int K = Integer . parseInt(st. nextToken());
20+
21+ Node current = root;
22+ for (int j = 0 ; j < K ; j++ ) {
23+ String food = st. nextToken();
24+ current. children. putIfAbsent(food, new Node ());
25+ current = current. children. get(food);
26+ }
27+ }
28+
29+ print(root, 0 );
30+ }
31+
32+ static void print (Node node , int d ) {
33+ for (String key : node. children. keySet()) {
34+ for (int i = 0 ; i < d; i++ ) {
35+ System . out. print(" --" );
36+ }
37+ System . out. println(key);
38+
39+ print(node. children. get(key), d + 1 );
40+ }
41+ }
42+ }
43+ ```
Original file line number Diff line number Diff line change 1+ ``` java
2+ import java.io.* ;
3+ import java.util.* ;
4+
5+ public class Main {
6+ public static void main (String [] args ) throws Exception {
7+ BufferedReader br = new BufferedReader (new InputStreamReader (System . in));
8+ int N = Integer . parseInt(br. readLine());
9+
10+ if (N == 1 ) {
11+ System . out. println(0 );
12+ return ;
13+ }
14+ if (N == 2 ) {
15+ System . out. println(1 );
16+ return ;
17+ }
18+
19+ long [] dp = new long [N + 1 ];
20+ long mod = 1000000000 ;
21+
22+ dp[1 ] = 0 ;
23+ dp[2 ] = 1 ;
24+
25+ for (int i = 3 ; i <= N ; i++ ) {
26+ dp[i] = (i - 1 ) * (dp[i - 1 ] + dp[i - 2 ]) % mod;
27+ }
28+
29+ System . out. println(dp[N ]);
30+ }
31+ }
32+ ```
You can’t perform that action at this time.
0 commit comments