結果
問題 | No.297 カードの数式 |
ユーザー |
![]() |
提出日時 | 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 |
ソースコード
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;}