import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.Locale;import java.util.StringTokenizer;public class Main { static int[] readInts(BufferedReader in, int n) throws IOException { StringTokenizer st = new StringTokenizer(in.readLine()); int[] a = new int[n]; for (int i = 0; i < n; i++) a[i] = Integer.parseInt(st.nextToken()); return a; } // 나누기 전에 double로 바꾼다: (double) (m / s)는 이미 정수로 나눈 뒤라 늦다 static String speed(long m, long s) { return String.format(Locale.ROOT, "%.2f", (double) m / s * 3.6); } // long끼리 나누면 소수 부분이 버려진다. 전체 시간 × 1000은 int를 넘는다 static String pace(long s, long m) { long p = s * 1000 / m; return String.format("%d:%02d", p / 60, p % 60); } public static void main(String[] args) throws IOException { BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); int n = Integer.parseInt(in.readLine().trim()); int[] ds = readInts(in, n); int[] ts = readInts(in, n); StringBuilder out = new StringBuilder(); long totalD = 0, totalT = 0; for (int i = 0; i < n; i++) { out.append(speed(ds[i], ts[i])).append(' ').append(pace(ts[i], ds[i])).append('\n'); totalD += ds[i]; totalT += ts[i]; } out.append("TOTAL ").append(speed(totalD, totalT)).append(' ').append(pace(totalT, totalD)).append('\n'); System.out.print(out); }}
C#Main.cs · 34 行
using System;using System.Globalization;using System.Linq;using System.Text;class Program{ // 나누기 전에 double로: (double)(m / s)는 정수로 나눈 뒤라 늦다 static string Speed(long m, long s) => ((double)m / s * 3.6).ToString("F2", CultureInfo.InvariantCulture); // long끼리 나누면 소수 부분이 버려진다. 전체 시간 × 1000은 int를 넘는다 static string Pace(long s, long m) { long p = s * 1000 / m; return $"{p / 60}:{p % 60:D2}"; } static void Main() { int n = int.Parse(Console.ReadLine()); int[] ds = Console.ReadLine().Split(' ', StringSplitOptions.RemoveEmptyEntries).Select(int.Parse).ToArray(); int[] ts = Console.ReadLine().Split(' ', StringSplitOptions.RemoveEmptyEntries).Select(int.Parse).ToArray(); var sb = new StringBuilder(); long totalD = 0, totalT = 0; for (int i = 0; i < n; i++) { sb.Append(Speed(ds[i], ts[i])).Append(' ').Append(Pace(ts[i], ds[i])).Append('\n'); totalD += ds[i]; totalT += ts[i]; } sb.Append("TOTAL ").Append(Speed(totalD, totalT)).Append(' ').Append(Pace(totalT, totalD)).Append('\n'); Console.Write(sb); }}
C++main.cpp · 36 行
#include <cstdio>#include <iostream>#include <vector>// 나누기 전에 double로: static_cast<double>(m / s)는 정수로 나눈 뒤라 늦다void printSpeed(long long m, long long s) { std::printf("%.2f", static_cast<double>(m) / s * 3.6);}// long long끼리 나누면 소수 부분이 버려진다. 전체 시간 × 1000은 int를 넘는다void printPace(long long s, long long m) { long long p = s * 1000 / m; std::printf("%lld:%02lld", p / 60, p % 60);}int main() { int n; std::cin >> n; std::vector<int> ds(n), ts(n); for (int& d : ds) std::cin >> d; for (int& t : ts) std::cin >> t; long long totalD = 0, totalT = 0; for (int i = 0; i < n; i++) { printSpeed(ds[i], ts[i]); std::printf(" "); printPace(ts[i], ds[i]); std::printf("\n"); totalD += ds[i]; totalT += ts[i]; } std::printf("TOTAL "); printSpeed(totalD, totalT); std::printf(" "); printPace(totalT, totalD); std::printf("\n");}
Cmain.c · 36 行
#include <stdio.h>static int ds[5000], ts[5000];/* 나누기 전에 double로: (double)(m / s)는 정수로 나눈 뒤라 늦다 */static void print_speed(long long m, long long s) { printf("%.2f", (double)m / s * 3.6);}/* long long끼리 나누면 소수 부분이 버려진다. 전체 시간 × 1000은 int를 넘는다 */static void print_pace(long long s, long long m) { long long p = s * 1000 / m; printf("%lld:%02lld", p / 60, p % 60);}int main(void) { int n; scanf("%d", &n); for (int i = 0; i < n; i++) scanf("%d", &ds[i]); for (int i = 0; i < n; i++) scanf("%d", &ts[i]); long long total_d = 0, total_t = 0; for (int i = 0; i < n; i++) { print_speed(ds[i], ts[i]); putchar(' '); print_pace(ts[i], ds[i]); putchar('\n'); total_d += ds[i]; total_t += ts[i]; } printf("TOTAL "); print_speed(total_d, total_t); putchar(' '); print_pace(total_t, total_d); putchar('\n'); return 0;}