結果
問題 | No.3070 Collecting Coins Speedrun 2 |
ユーザー |
|
提出日時 | 2025-03-21 23:15:40 |
言語 | C++23 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 46 ms / 2,000 ms |
コード長 | 1,162 bytes |
コンパイル時間 | 3,104 ms |
コンパイル使用メモリ | 280,776 KB |
実行使用メモリ | 7,324 KB |
最終ジャッジ日時 | 2025-03-21 23:15:48 |
合計ジャッジ時間 | 4,742 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 32 |
ソースコード
#include <bits/stdc++.h> using namespace std; long long mod = 998244353; long long power(long long a, long long b, long long m) { long long r = 1; for (long long i = 0; i < b; i++) { r *= a; r %= m; } return r; } int main() { long long n; cin >> n; vector<long long> c(n); bool flag = false; for (long long i = 0; i < n; i++) { cin >> c[i]; if (c[i] == 0) { flag = true; } } sort(c.begin(), c.end()); long long ans = 0; long long l = 0; long long r = n - 1; long long mid = 0; if (c[0] >= 0) { cout << power(2, n - 1, mod) << endl; } else if (c[n - 1] <= 0) { cout << power(2, n - 1, mod) << endl; } else { if (n == 2) { cout << 2 << endl; return 0; } long long ans = power(2, n - 3, mod); if (flag) { ans *= 3; ans %= mod; } else { ans *= 2; ans %= mod; } ans *= 2; ans %= mod; cout << ans << endl; } }