1 条题解
-
0
C :
#include <stdio.h> int main() { int i, j, k, l, n; int a[100]; int count = 0; scanf("%d", &n); for (i = 0; i < n; i++) scanf("%d", &a[i]); for (i = n; i > 1; i--) { k = 0, l = 1; if (a[0] < a[1]) k = 1, l = 0; for (j = 2; j < i; j++) { if (a[j] <= a[k]) { if (a[j] < a[l]) k = l, l = j; else k = j; } } a[l] += a[k]; count += a[l]; for (j = k; j < i - 1; j++) a[j] = a[j + 1]; } printf("%d", count); return 0; }C++ :
#include <stdio.h> int main() { int i, j, k, l, n; int a[100]; int count = 0; scanf("%d", &n); for (i = 0; i < n; i++) scanf("%d", &a[i]); for (i = n; i > 1; i--) { k = 0, l = 1; if (a[0] < a[1]) k = 1, l = 0; for (j = 2; j < i; j++) { if (a[j] <= a[k]) { if (a[j] < a[l]) k = l, l = j; else k = j; } } a[l] += a[k]; count += a[l]; for (j = k; j < i - 1; j++) a[j] = a[j + 1]; } printf("%d", count); return 0; }Pascal :
var i,j,k,m,n,t,s:longint; a:array[1..500]of longint; begin readln(n); for i:=1 to n do read(a[i]); for i:=1 to n-1 do begin for j:=i+1 to n do begin if a[i]>a[j] then begin t:=a[i]; a[i]:=a[j]; a[j]:=t; end; end; end; s:=0; k:=0; repeat a[1]:=a[1]+a[2]; a[2]:=a[n-k]; a[n-k]:=0; s:=a[1]+s; for i:=1 to n-k-2 do begin for j:=i+1 to n-k-1 do begin if a[i]>a[j] then begin t:=a[i]; a[i]:=a[j]; a[j]:=t; end; end; end; inc(k); until k=n-1; writeln(s); end.Java :
import java.util.Arrays; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); while (scanner.hasNext()) { int num = scanner.nextInt(); int[] pi = new int[num]; for (int i = 0; i < num; i++) pi[i] = scanner.nextInt(); int sum = 0; int k = 0; while (num > 1) { Arrays.sort(pi); k = pi[0] + pi[1]; sum = sum + k; pi[0] = k; pi[1] = Integer.MAX_VALUE; num--; } System.out.println(sum); } } }
- 1
信息
- ID
- 1078
- 时间
- 1000ms
- 内存
- 512MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者