結果

問題 No.1629 Sorting Integers (SUM of M)
ユーザー 風月
提出日時 2021-07-30 21:36:31
言語 C++17
(gcc 13.3.0 + boost 1.87.0)
結果
AC  
実行時間 8 ms / 2,000 ms
コード長 2,362 bytes
コンパイル時間 2,022 ms
コンパイル使用メモリ 192,236 KB
最終ジャッジ日時 2025-01-23 11:18:39
ジャッジサーバーID
(参考情報)
judge3 / judge5
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 4
other AC * 14
権限があれば一括ダウンロードができます

ソースコード

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

#include<bits/stdc++.h>
#include<unordered_map>
#define for_int(i,a,b) for(int i=(a);i<=(b);++i)
#define rep_int(i,a,b) for(int i=(a);i>=(b);--i)
#define for_ll(i,a,b) for(ll i=(a);i<=(b);++i)
#define rep_ll(i,a,b) for(ll i=(a);i>=(b);--i)
#define Ios std::ios::sync_with_stdio(false),std::cin.tie(0)
#define ull unsigned long long
#define ll long long
#define db double
#define PII std::pair<int,int>
#define PLI std::pair<long long , int>
template<class T> void chkmax(T& a, T b) { a > b ? (a = a) : (a = b); }
template<class T> void chkmin(T& a, T b) { a > b ? (a = b) : (a = a); }
template<class T> T min(T a, T b) { return a > b ? b : a; }
template<class T> T max(T a, T b) { return a < b ? b : a; }
template<class T> T abs(T a) { return a < 0 ? -a : a; }
//using namespace std;
/*
1.
2.
!!! 3.INT_MININT_MAX
4.
5.
6.long long
*/
//IO
template<class T>
inline bool rd(T& ret) {
char c; int sgn;
if (c = getchar(), c == EOF) return 0;
while (c != '-' && (c < '0' || c > '9')) c = getchar();
sgn = (c == '-') ? -1 : 1;
ret = (c == '-') ? 0 : (c - '0');
while (c = getchar(), c >= '0' && c <= '9') ret = ret * 10 + (c - '0');
ret *= sgn;
return true;
}
template<class T>
inline void print(T x) {
if (x > 9) print(x / 10);
putchar(x % 10 + '0');
return;
}
using std::vector;
using std::queue;
using std::string;
using std::map;
using std::unordered_map;
using std::priority_queue;
using std::cout;
using std::cin;
int mod = 1e9 + 7;
int quickPow(int a, int n) {
int res = 1;
while (n) {
if (n & 1) res = 1ll * res * a % mod;
n >>= 1;
a = 1ll * a * a % mod;
}
return res;
}
int n, ct, a[10];
int main() {
rd(n);
for (int i = 1; i <= 9; ++i) rd(a[i]);
int m = 1;
for (int i = 1; i <= n; ++i) {
m = 1ll * m * i % mod;
ct = (1ll * ct * 10 + 1) % mod;
}
long long res = 0;
for (int i = 1; i <= 9; ++i) {
int tmp = 1;
for (int j = 1; j <= a[i]; ++j)
tmp = 1ll * tmp * j % mod;
m = 1ll * m * quickPow(tmp, mod - 2) % mod;
}
int invn = quickPow(n, mod - 2);
m = 1ll * m * invn % mod;
for (int i = 1; i <= 9; ++i) {
res = (res + ((((1ll * m * a[i])% mod) * i)%mod) * ct) % mod;
}
print(res); puts("");
return 0;
}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0