intmain() { int a, b, c; cin >> a >> b >> c; if (a <= b && b <= c) cout << "Yes" << endl; elseif (a >= b && b >= c) cout << "Yes" << endl; else cout << "No" << endl; return0; }
// Problem: E - Distance Sequence // Contest: AtCoder - NOMURA Programming Contest 2022(AtCoder Beginner Contest 253) // URL: https://atcoder.jp/contests/abc253/tasks/abc253_e // Memory Limit: 1024 MB // Time Limit: 2000 ms // // Powered by CP Editor (https://cpeditor.org)
/* Name: Author: xiaruize Date: */ #include<bits/stdc++.h> usingnamespace std; #define int long long #define ull unsigned int #define ALL(a) (a).begin(), (a).end() #define pb push_back #define mk make_pair #define pii pair<int, int> #define pis pair<int, string> #define sec second #define fir first #define sz(a) int((a).size()) #define rep(i, x, y) for (int i = x; i <= y; i++) #define repp(i, x, y) for (int i = x; i >= y; i--) #define Yes cout << "Yes" << endl #define YES cout << "YES" << endl #define No cout << "No" << endl #define NO cout << "NO" << endl #define debug(x) cerr << #x << ": " << x << endl #define double long double constint INF = 0x3f3f3f3f; constint MOD = 998244353; constint N = 1e5 + 10;
// bool st; int n, m, k; int dp[1005][5005]; int sum[5005]; // bool en; intquickMod(int a, int b) { int ans = 1; while (b) { if (b & 1) ans = ans * a % MOD; a = a * a % MOD; b >>= 1; } return ans; }
signedmain() { // freopen(".in","r",stdin); // freopen(".out","w",stdout); // cerr<<(&en-&st)/1024.0/1024.0<<endl; cin >> n >> m >> k; if (k == 0) { cout << quickMod(m, n) % MOD << endl; return0; } for (int i = 1; i <= m; i++) { dp[1][i] = 1; sum[i] = i; } for (int i = 2; i <= n; i++) { for (int j = 1; j <= m; j++) { if (j > k) dp[i][j] += sum[j - k] % MOD; dp[i][j] = (dp[i][j] % MOD + MOD) % MOD; if (j + k <= m) dp[i][j] += sum[m] - sum[j + k - 1]; dp[i][j] = (dp[i][j] % MOD + MOD) % MOD; } memset(sum, 0, sizeof(sum)); for (int j = 1; j <= m; j++) sum[j] = (sum[j - 1] % MOD + dp[i][j] % MOD + MOD) % MOD; } cout << sum[m] % MOD << endl; return0; }