結果
| 問題 |
No.297 カードの数式
|
| コンテスト | |
| ユーザー |
yosupot
|
| 提出日時 | 2015-11-06 23:05:45 |
| 言語 | D (dmd 2.109.1) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 880 bytes |
| コンパイル時間 | 1,534 ms |
| コンパイル使用メモリ | 151,936 KB |
| 実行使用メモリ | 5,376 KB |
| 最終ジャッジ日時 | 2024-06-12 02:45:32 |
| 合計ジャッジ時間 | 2,391 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 16 WA * 7 |
ソースコード
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";
auto dd = d.dup;
long sm = 0;
foreach (i; 0..mn) {
sm -= d.back;
d.popBack;
}
foreach (i; 0..pn) {
sm += d.back;
d.popBack;
}
sm += d.map!(to!string).join.to!long;
if (mn != 0) {
writeln(sm, " ", -1 * sm);
return 0;
}
d = dd;
long[] buf = new long[](pn+1);
d.reverse;
foreach (i; 0..d.length) {
buf[i % (pn+1)] *= 10;
buf[i % (pn+1)] += d[i];
}
writeln(sm, " ", buf.sum);
return 0;
}
yosupot