結果

問題 No.297 カードの数式
ユーザー yosupot
提出日時 2015-11-06 23:11:13
言語 D
(dmd 2.109.1)
結果
AC  
実行時間 2 ms / 1,000 ms
コード長 1,063 bytes
コンパイル時間 1,816 ms
コンパイル使用メモリ 153,432 KB
実行使用メモリ 5,376 KB
最終ジャッジ日時 2024-06-12 02:45:53
合計ジャッジ時間 2,784 ms
ジャッジサーバーID
(参考情報)
judge5 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 23
権限があれば一括ダウンロードができます

ソースコード

diff #
プレゼンテーションモードにする

import std.stdio, std.conv;
import std.algorithm, std.range, std.random;
import std.string, std.array, std.container, std.bigint;
import std.typecons, std.ascii;
int[] d;
int main() {
int n;
readf("%d\n", &n);
int[] d;
int pn, mn;
foreach (i; 0..n) {
char c;
readf(" %c", &c);
if (isDigit(c)) {
d ~= to!int(""~c);
} else {
final switch(c) {
case '+':
pn++;
break;
case '-':
mn++;
break;
}
}
}
d.sort!"a > b";
pn++;
auto dd = d.dup;
long sm = 0;
foreach (i; 0..mn) {
sm -= d.back;
d.popBack;
}
foreach (i; 0..pn-1) {
sm += d.back;
d.popBack;
}
sm += d.map!(to!string).join.to!long;
if (mn != 0) {
d = dd;
long msm = 0;
foreach (i; 0..pn) {
msm += d.back;
d.popBack;
}
foreach (i; 0..mn-1) {
msm -= d.back;
d.popBack;
}
msm -= d.map!(to!string).join.to!long;
writeln(sm, " ", msm);
return 0;
}
d = dd;
long[] buf = new long[](pn);
d.reverse;
foreach (i; 0..d.length) {
buf[i % pn] *= 10;
buf[i % pn] += d[i];
}
writeln(sm, " ", buf.sum);
return 0;
}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0