Submission #70108723
Source Code Expand
Copy
#include <stdio.h>#include <inttypes.h>#define MOD_BY 998244353int mul(int a, int b) {return (int)((int64_t)a * b % MOD_BY);}int pou(int a, uint64_t b) {int r = 1;while (b > 0) {if (b & 1) r = mul(r, a);a = mul(a, a);b >>= 1;}return r;}int main(void) {uint64_t N;
#include <stdio.h>
#include <inttypes.h>
#define MOD_BY 998244353
int mul(int a, int b) {
return (int)((int64_t)a * b % MOD_BY);
}
int pou(int a, uint64_t b) {
int r = 1;
while (b > 0) {
if (b & 1) r = mul(r, a);
a = mul(a, a);
b >>= 1;
}
return r;
}
int main(void) {
uint64_t N;
if (scanf("%" SCNu64, &N) != 1) return 1;
printf("%d\n", pou(2, N - 1));
return 0;
}
/*
P_1:まず適当に決める
P_i (i >= 2):「それまでの最大値+1」か「それまでの最小値-1」の2択
+n / -n (n > 1) を使ってしまうと、後で中途半端な値しか残らなくなって詰む
*/
Submission Info
| Submission Time | |
|---|---|
| Task | A - >_< |
| User | mikecat |
| Language | C (gcc 12.2.0) |
| Score | 300 |
| Code Size | 648 Byte |
| Status | AC |
| Exec Time | 1 ms |
| Memory | 1724 KiB |
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 300 / 300 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | example0.txt, example1.txt |
| All | example0.txt, example1.txt, max_rand0.txt, max_rand1.txt, max_rand2.txt, maximum0.txt, minimum0.txt, random0.txt, random1.txt, random2.txt, random3.txt, random4.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| example0.txt | AC | 0 ms | 1628 KiB |
| example1.txt | AC | 0 ms | 1632 KiB |
| max_rand0.txt | AC | 0 ms | 1612 KiB |
| max_rand1.txt | AC | 0 ms | 1692 KiB |
| max_rand2.txt | AC | 0 ms | 1720 KiB |
| maximum0.txt | AC | 0 ms | 1704 KiB |
| minimum0.txt | AC | 0 ms | 1624 KiB |
| random0.txt | AC | 0 ms | 1548 KiB |
| random1.txt | AC | 1 ms | 1700 KiB |
| random2.txt | AC | 0 ms | 1720 KiB |
| random3.txt | AC | 0 ms | 1628 KiB |
| random4.txt | AC | 0 ms | 1724 KiB |