Submission #7451777
Source Code Expand
using System;
using System.Collections.Generic;
using System.Linq;
using static System.Console;
using System.Runtime.CompilerServices;
using static MyUtil;
class MyUtil
{
public static void AssertEquals<T>(
T expected,
T actual,
[CallerLineNumber] int lno = 0
)
where T : IComparable
{
if (expected.CompareTo(actual) != 0)
{
WriteLine($"Assertion Error at line {lno}:");
WriteLine($"\texpected: {expected}");
WriteLine($"\t actual: {actual}");
Environment.Exit(1);
}
}
}
class Program
{
static bool isEven(int x){ return (x&1) == 0; }
static bool isOdd(int x){ return !isEven(x); }
public static void Main()
{
int n = int.Parse(ReadLine());
int[] a = new int[n];
for (int i = 0; i < n; i++)
a[i] = int.Parse(ReadLine());
Array.Sort(a);
Array.Reverse(a);
int[] nP2 = new int[2];
int[] nP1 = new int[2];
int[] nM1 = new int[2];
int[] nM2 = new int[2];
// case P1 < P2 > P3 < P4 > P5
nP2[0] = isOdd(n) ? n/2 : n/2 - 1;
nP1[0] = isEven(n) ? 1 : 0;
nM1[0] = isOdd(n) ? 2 : 1;
nM2[0] = n/2 - 1;
AssertEquals(nP2[0]+nP1[0]+nM1[0]+nM2[0], n);
// case P1 > P2 < P3 > P4 < P5
nP2[1] = n/2 - 1;
nP1[1] = isOdd(n) ? 2 : 1;
nM1[1] = isEven(n) ? 1 : 0;
nM2[1] = isOdd(n) ? n/2 : n/2 - 1;
AssertEquals(nP2[1]+nP1[1]+nM1[1]+nM2[1], n);
long[] ans = new long[2];
for (int i = 0; i < 2; i++)
{
int ct = 0;
for (int j = 0; j < nP2[i]; j++)
ans[i] += 2L * a[ct++];
for (int j = 0; j < nP1[i]; j++)
ans[i] += a[ct++];
for (int j = 0; j < nM1[i]; j++)
ans[i] -= a[ct++];
for (int j = 0; j < nM2[i]; j++)
ans[i] -= 2L * a[ct++];
}
WriteLine(Math.Max(ans[0], ans[1]));
}
}
Submission Info
| Submission Time | |
|---|---|
| Task | C - Align |
| User | unnohideyuki |
| Language | C# (Mono 4.6.2.0) |
| Score | 400 |
| Code Size | 1808 Byte |
| Status | AC |
| Exec Time | 87 ms |
| Memory | 17344 KiB |
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 400 / 400 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | s1.txt, s2.txt, s3.txt |
| All | 01.txt, 02.txt, 03.txt, 04.txt, 05.txt, 06.txt, 07.txt, 08.txt, 09.txt, 10.txt, 11.txt, 12.txt, 13.txt, 14.txt, 15.txt, 16.txt, 17.txt, 18.txt, 19.txt, 20.txt, 21.txt, 22.txt, 23.txt, 24.txt, 25.txt, 26.txt, 27.txt, 28.txt, 29.txt, 30.txt, 31.txt, 32.txt, 33.txt, 34.txt, 35.txt, 36.txt, 37.txt, s1.txt, s2.txt, s3.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 01.txt | AC | 83 ms | 15452 KiB |
| 02.txt | AC | 86 ms | 13404 KiB |
| 03.txt | AC | 86 ms | 13404 KiB |
| 04.txt | AC | 83 ms | 15452 KiB |
| 05.txt | AC | 83 ms | 13404 KiB |
| 06.txt | AC | 84 ms | 15452 KiB |
| 07.txt | AC | 87 ms | 15452 KiB |
| 08.txt | AC | 83 ms | 15452 KiB |
| 09.txt | AC | 86 ms | 13404 KiB |
| 10.txt | AC | 84 ms | 15452 KiB |
| 11.txt | AC | 84 ms | 15452 KiB |
| 12.txt | AC | 84 ms | 15452 KiB |
| 13.txt | AC | 84 ms | 13404 KiB |
| 14.txt | AC | 84 ms | 13404 KiB |
| 15.txt | AC | 84 ms | 15452 KiB |
| 16.txt | AC | 83 ms | 13404 KiB |
| 17.txt | AC | 85 ms | 17344 KiB |
| 18.txt | AC | 86 ms | 13404 KiB |
| 19.txt | AC | 84 ms | 15452 KiB |
| 20.txt | AC | 86 ms | 13404 KiB |
| 21.txt | AC | 81 ms | 13408 KiB |
| 22.txt | AC | 78 ms | 13408 KiB |
| 23.txt | AC | 82 ms | 11360 KiB |
| 24.txt | AC | 81 ms | 11360 KiB |
| 25.txt | AC | 63 ms | 13408 KiB |
| 26.txt | AC | 66 ms | 13408 KiB |
| 27.txt | AC | 63 ms | 11360 KiB |
| 28.txt | AC | 63 ms | 13408 KiB |
| 29.txt | AC | 62 ms | 11360 KiB |
| 30.txt | AC | 67 ms | 13408 KiB |
| 31.txt | AC | 67 ms | 11360 KiB |
| 32.txt | AC | 67 ms | 11360 KiB |
| 33.txt | AC | 23 ms | 11220 KiB |
| 34.txt | AC | 23 ms | 11220 KiB |
| 35.txt | AC | 22 ms | 9172 KiB |
| 36.txt | AC | 23 ms | 13268 KiB |
| 37.txt | AC | 22 ms | 9172 KiB |
| s1.txt | AC | 22 ms | 9172 KiB |
| s2.txt | AC | 22 ms | 11220 KiB |
| s3.txt | AC | 22 ms | 9172 KiB |