結果

問題 No.8045 怪文書
ユーザー Haar
提出日時 2019-04-01 22:06:10
言語 C++14
(gcc 13.3.0 + boost 1.87.0)
結果
AC  
実行時間 3 ms / 2,000 ms
コード長 3,153 bytes
コンパイル時間 1,575 ms
コンパイル使用メモリ 172,380 KB
実行使用メモリ 5,248 KB
最終ジャッジ日時 2024-11-27 02:55:03
合計ジャッジ時間 2,217 ms
ジャッジサーバーID
(参考情報)
judge1 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 1
other AC * 20
権限があれば一括ダウンロードができます

ソースコード

diff #
プレゼンテーションモードにする

#include <bits/stdc++.h>
#define FOR(v, a, b) for(int v = (a); v < (b); ++v)
#define FORE(v, a, b) for(int v = (a); v <= (b); ++v)
#define REP(v, n) FOR(v, 0, n)
#define REPE(v, n) FORE(v, 0, n)
#define REV(v, a, b) for(int v = (a); v >= (b); --v)
#define ALL(x) (x).begin(), (x).end()
#define ITR(it, c) for(auto it = (c).begin(); it != (c).end(); ++it)
#define RITR(it, c) for(auto it = (c).rbegin(); it != (c).rend(); ++it)
#define EXIST(c,x) ((c).find(x) != (c).end())
#define LLI long long int
#define fst first
#define snd second
#ifdef DEBUG
#include <misc/C++/Debug.cpp>
#else
#define dump(x)
#endif
#define gcd __gcd
using namespace std;
template <class T> constexpr T lcm(T m, T n){return m/gcd(m,n)*n;}
template <typename I> void join(ostream &ost, I s, I t, string d=" "){for(auto i=s; i!=t; ++i){if(i!=s)ost<<d; ost<<*i;}ost<<endl;}
template <typename T> istream& operator>>(istream &is, vector<T> &v){for(auto &a : v) is >> a; return is;}
template <typename T, typename U> istream& operator>>(istream &is, pair<T,U> &p){is >> p.first >> p.second; return is;}
template <typename T, typename U> T& chmin(T &a, const U &b){return a = (a<=b?a:b);}
template <typename T, typename U> T& chmax(T &a, const U &b){return a = (a>=b?a:b);}
template <typename T, size_t N, typename U> void fill_array(T (&a)[N], const U &v){fill((U*)a, (U*)(a+N), v);}
const string S[41] = {
"ABCDEFGHIJKLMNOPQRSTUVWXZ",
"ABCDEFGHIJKLMNPQRSTVWXYZ",
"BCDEFGHIJKLMNOPQSTUVWXYZ",
"ABCDFGHIJKLMNOPQRSTUVWXYZ",
"ABCDEFHJKLMNOPQRSTUWXYZ",
"ABCDFGHIJKLMOPQRSTUVWXYZ",
"ABCDEFGHIJKLMNOPQRSUVXYZ",
"ABCDEFGHIJKLMNPQRSTUVWXYZ",
"ABCDEFGHJKLMOPQRSUVWXYZ",
"ABCDFHIJKLMNOPQRSTUVWXYZ",
"ABCDFGHIJKLMNOPQTUVWXYZ",
"ABCDEFGHIJKLMOPQRSTUVWXYZ",
"BCDEFGHIJKLMOPQRSTUVWXYZ",
"ABCEFGHIJKLMNOPQRSTUVWXYZ",
"ABCDEFGHIJKLNOPQRSTUVWXYZ",
"ABCDEFGHIJKLMNOPQRSTUVWXZ",
"ABCDEFGHIJKLMNPQRSTVWXYZ",
"ABCDEFGHIJKLMNOPQSTUVWXYZ",
"ABCDEFGHIJKLMNOPQRSUVWXYZ",
"BCDEFGHIJKLMNOPQRTUVWXYZ",
"ABCDEFGHIJLMNOPQRSTUVWXYZ",
"ABCDEFGHJKLMNOPQRTUVWXYZ",
"ABCDEFGHIJKLMNOPQRSUVWXYZ",
"ABCDEFGHIJKLMNPQRSTUVWXYZ",
"ABCDEGHJKLMOPQRSTUVWXYZ",
"ABCEFGHIJKLMNOPQRSTUVWXYZ",
"ABCDEFGHIJKLMNOPQRSUVWXYZ",
"ABCDEFGIJKLMNOPQRSTUVWXYZ",
"ABCDFGHIJKLMNOPQRSTUVWXYZ",
"ABCDEGHIJKLMNOPQRSTUVWXYZ",
"BDEFGHIJKLMNOPQRSUVWXYZ",
"ABCDEFGHIJKLMNPQSTUVWXYZ",
"ABCDEFGHJKLMNOPQRSTUVWXYZ",
"BCDEFGHIJKMNOPQRSTUVWXYZ",
"ABCDEFGHIJKLMNPQRSTUVWXYZ",
"ABCDEGHIJKLMNOPQRSTUVWXYZ",
"ABCDEFGHIJKLMOPQRSTUVWXYZ",
"ABCDEFGHIJKLNPQRSTUVWXYZ",
"ABCEFGHIJKLMNOPQRSTVWXYZ",
"ABCDEFGHIJKMNPQRSTUVWXYZ",
"ABCDEFGHIJKLNOPQRSTUVWXYZ"
};
template <typename T> LLI factorial(T n, T m){LLI k = 1LL; FORE(i,1,n) k = (k*i) % m; return k;}
int main(){
cin.tie(0);
ios::sync_with_stdio(false);
REP(i,41){
string s = S[i];
string t;
vector<bool> e(26,false);
for(auto c : s) e[c-'A'] = true;
REP(j,26) if(not e[j]) t.push_back(j+'A');
cerr << t;
}
cerr << endl;
LLI n,m;
while(cin >> n >> m){
LLI ans;
if(n > m) ans = 0;
else ans = factorial(n,m);
cout << ans << endl;
}
return 0;
}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0