結果
問題 |
No.1904 Never giving up!
|
ユーザー |
|
提出日時 | 2022-04-15 21:57:52 |
言語 | C++23 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 3 ms / 2,000 ms |
コード長 | 1,141 bytes |
コンパイル時間 | 6,115 ms |
コンパイル使用メモリ | 310,912 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-12-25 00:34:39 |
合計ジャッジ時間 | 6,852 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 9 |
ソースコード
#include <bits/stdc++.h> #include <atcoder/all> using namespace std; using namespace atcoder; #define rep(i, n) for(int i = 0; i < n; i++) #define repr(i, n) for(int i = n; i >= 0; i--) #define range(i, m, n) for(int i = m; i < n; i++) #define ALL(v) v.begin(), v.end() #define RALL(v) v.rbegin(), v.rend() #define sum(v) accumulate(ALL(v),0) #define int long long typedef long long ll; typedef vector<ll> vl; typedef vector<vector<ll>> vvl; const ll MOD = 1000000007; const ll MOD2 = 998244353; const ll INF = 1e16; template<class T> inline bool chmax(T& a, T b) { if (a < b) { a = b; return 1; } return 0; } template<class T> inline bool chmin(T& a, T b) { if (a > b) { a = b; return 1; } return 0; } using Graph = vector<vector<ll>>; int32_t main(){ int N;cin >> N; vl A(N,0); rep(i,N)cin >> A[i]; sort(ALL(A)); vl Fact(21,1); range(i,2,21)Fact[i] = i*Fact[i-1]; //cout << Fact[20] << endl; int Same=1; int Ans = Fact[N]; range(i,1,N){ if(A[i]!=A[i-1]){ Ans/=Fact[Same]; Same = 1; } else Same+=1; } Ans/=Fact[Same]; cout << Ans << endl; }