L2-017人以群分
时间限制150ms内存限制64MB
输入格式:输入第一行给出一个正整数N。随后一行给出N个正整数,分别是每个人的活跃度,其间以空格分隔。题目保证这些数字以及它们的和都不会超过2312^{31}23
输出格式:按下列格式输出:
其中N1是外向型人的个数;N2是内向型人的个数;N3是两群人总活跃度之差的绝对值。
输出样例Outgoing#:5Introverted#:5Diff=3611
输出样例Outgoing#:7Introverted#:6Diff=9359
给定n个人的活跃度,然后你去求出高活跃人群与低活跃人群,以及两种人群差最大是多少
将活跃度排序,最低的一半人一堆,其他的都是高活跃度的,算出人就好了
这题我java过不了
import java.io.*;
import java.math.*;
import java.util.*;
public class Main
{
public static void main(String[] args) throws IOException
{
int n = sc.nextInt();
int shu[] = new int[n + 10];
int ans = 0; // 存所有人的活跃度
for (int i = 1; i <= n; i++)
{
shu[i] = sc.nextInt();
ans += shu[i];
}
Arrays.sort(shu, 1, n + 1);
int m = n / 2;
for (int i = 1; i <= n / 2; i++)
ans -= shu[i] + shu[i];
// 总活跃度减去两倍低活跃度的
// 减去一个是算高活跃度
// 减去两个是算高活跃与低活跃的差值
out.printf("Outgoing #: %d
", (n + 1) / 2);
out.printf("Introverted #: %d
", m);
out.printf("Diff = %d
", ans);
out.flush();
out.close();
}
static Scanner sc = new Scanner(System.in);
static PrintWriter out = new PrintWriter(System.out);
}
如果有说错的或者不懂的尽管提嘻嘻
一起进步!!!
文章为作者独立观点,不代表 股票程序化软件自动交易接口观点