importjava.util.Scanner;publicclassMain{publicstaticvoidmain(String[] args){Scanner scanner =newScanner(System.in);int a = scanner.nextInt();int b = scanner.nextInt();String s =Integer.toString(a + b);int len = s.length();int mod = len %3;for(int i =0; i < len; i++){System.out.print(s.charAt(i));if(s.charAt(i)!='-'&&(i +1)%3== mod && i != len -1){System.out.print(",");}}}}
1002 A+B for Polynomials
importjava.util.*;publicclassMain{publicstaticvoidmain(String[] args){Scanner scanner =newScanner(System.in);float[] coefficients =newfloat[1001];int termCount, exponent;float coefficient;for(int i =0; i <2; i++){
termCount = scanner.nextInt();for(int j =0; j < termCount; j++){
exponent = scanner.nextInt();
coefficient = scanner.nextFloat();
coefficients[exponent]+= coefficient;}}int nonZeroCount =0;for(float coeff : coefficients){if(coeff !=0) nonZeroCount++;}System.out.print(nonZeroCount);for(int i =1000; i >=0; i--){if(coefficients[i]!=0){System.out.printf(" %d %.1f", i, coefficients[i]);}}}}
1003 Emergency
importjava.util.*;publicclassMain{publicstaticvoidmain(String[] args){Scanner scanner =newScanner(System.in);int n = scanner.nextInt(), m = scanner.nextInt();int start = scanner.nextInt(), end = scanner.nextInt();int[] rescueTeams =newint[n];for(int i =0; i < n; i++) rescueTeams[i]= scanner.nextInt();int[][] graph =newint[n][n];for(int i =0; i < n; i++)Arrays.fill(graph[i],Integer.MAX_VALUE);for(int i =0; i < m; i++){int u = scanner.nextInt(), v = scanner.nextInt(), len = scanner.nextInt();
graph[u][v]= len;
graph[v][u]= len;}int[] dist =newint[n], maxTeams =newint[n], paths =newint[n];boolean[] visited =newboolean[n];Arrays.fill(dist,Integer.MAX_VALUE);
dist[start]=0;
maxTeams[start]= rescueTeams[start];
paths[start]=1;PriorityQueue<int[]> pq =newPriorityQueue<>(Comparator.comparingInt(a -> a[1]));
pq.add(newint[]{start,0, rescueTeams[start]});while(!pq.isEmpty()){int[] current = pq.poll();int city = current[0];if(visited[city])continue;
visited[city]=true;for(int v =0; v < n; v++){if(!visited[v]&& graph[city][v]!=Integer.MAX_VALUE){int newDist = dist[city]+ graph[city][v];if(newDist < dist[v]){
dist[v]= newDist;
maxTeams[v]= maxTeams[city]+ rescueTeams[v];
paths[v]= paths[city];
pq.add(newint[]{v, newDist, maxTeams[v]});}elseif(newDist == dist[v]){if(maxTeams[city]+ rescueTeams[v]> maxTeams[v])
maxTeams[v]= maxTeams[city]+ rescueTeams[v];
paths[v]+= paths[city];}}}if(city == end)break;}System.out.println(paths[end]+" "+ maxTeams[end]);}}
1004 Counting Leaves
importjava.util.*;publicclassMain{publicstaticvoidmain(String[] args){Scanner scanner =newScanner(System.in);intN= scanner.nextInt();intM= scanner.nextInt();Map<String,List<String>> tree =newHashMap<>();
tree.put("01",newArrayList<>());for(int i =0; i <M; i++){String id = scanner.next();intK= scanner.nextInt();
tree.putIfAbsent(id,newArrayList<>());for(int j =0; j <K; j++){String childId = scanner.next();
tree.putIfAbsent(childId,newArrayList<>());
tree.get(id).add(childId);}}List<Integer> result =newArrayList<>();Queue<String> queue =newLinkedList<>();
queue.add("01");while(!queue.isEmpty()){int levelSize = queue.size();int leafCount =0;for(int i =0; i < levelSize; i++){String nodeId = queue.poll();List<String> children = tree.get(nodeId);if(children.isEmpty()){
leafCount++;}else{
queue.addAll(children);}}
result.add(leafCount);}for(int i =0; i < result.size(); i++){if(i >0)System.out.print(" ");System.out.print(result.get(i));}
scanner.close();}}
1005 Spell It Right
importjava.util.Scanner;publicclassMain{privatestaticfinalString[]DIGIT_WORDS={"zero","one","two","three","four","five","six","seven","eight","nine"};publicstaticvoidmain(String[] args){Scanner scanner =newScanner(System.in);String number = scanner.next();int sum =0;for(char c : number.toCharArray()){
sum += c -'0';}String sumStr =Integer.toString(sum);StringBuilder result =newStringBuilder();for(int i =0; i < sumStr.length(); i++){if(i >0){
result.append(" ");}int digit = sumStr.charAt(i)-'0';
result.append(DIGIT_WORDS[digit]);}System.out.println(result.toString());
scanner.close();}}