Submission #1494146
Source Code Expand
#include <bits/stdc++.h>
using namespace std;
#define FOR(i,l,r) for(int i = int(l);i < int(r);i++)
template<typename T> bool chmax(T& a,const T& b){ return a < b ? (a = b,true) : false; }
template<typename T> bool chmin(T& a,const T& b){ return b < a ? (a = b,true) : false; }
typedef long long ll;
ll N,T;
vector<ll> A,Q,C;
const ll MOD = 1e9 + 7;
ll mod_pow(ll x,ll y = MOD - 2)
{
ll res = 1;
while(y){
if(y & 1) (res *= x) %= MOD;
(x *= x) %= MOD;
y >>= 1;
}
return res;
}
int main()
{
scanf("%lld",&N);
A.assign(N + 1,0);
FOR(i,0,N + 1){
scanf("%lld",&A [i]);
}
scanf("%lld",&T);
if(T <= N){
printf("%lld\n",A [T]);
return 0;
}
Q.assign(N + 1,1);
FOR(i,1,N + 1){
(Q [0] *= MOD - i) %= MOD;
}
FOR(i,1,N + 1){
Q [i] = Q [i - 1] * mod_pow(i - 1 - N + MOD) % MOD * i % MOD;
}
C.assign(N + 1,0);
FOR(i,0,N + 1){
C [i] = A [i] * mod_pow(Q [i]) % MOD;
}
ll x = 1;
FOR(i,0,N + 1){
(x *= T - i) %= MOD;
}
ll ans = 0;
FOR(i,0,N + 1){
(ans += C [i] * x % MOD * mod_pow(T - i)) %= MOD;
}
printf("%lld\n",ans);
return 0;
}
Submission Info
Submission Time |
|
Task |
D - 見たことのない多項式 |
User |
gigime |
Language |
C++14 (GCC 5.4.1) |
Score |
100 |
Code Size |
1135 Byte |
Status |
AC |
Exec Time |
60 ms |
Memory |
2560 KB |
Compile Error
./Main.cpp: In function ‘int main()’:
./Main.cpp:26:18: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%lld",&N);
^
./Main.cpp:29:23: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%lld",&A [i]);
^
./Main.cpp:31:18: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%lld",&T);
^
Judge Result
Set Name |
Sample |
Subtask1 |
Subtask2 |
Subtask3 |
Score / Max Score |
0 / 0 |
40 / 40 |
40 / 40 |
20 / 20 |
Status |
|
|
|
|
Set Name |
Test Cases |
Sample |
sample_01.txt, sample_02.txt |
Subtask1 |
sample_01.txt, sample_02.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt |
Subtask2 |
sample_01.txt, sample_02.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask2_01.txt, subtask2_02.txt, subtask2_03.txt, subtask2_04.txt, subtask2_05.txt, subtask2_06.txt, subtask2_07.txt, subtask2_08.txt |
Subtask3 |
sample_01.txt, sample_02.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask2_01.txt, subtask2_02.txt, subtask2_03.txt, subtask2_04.txt, subtask2_05.txt, subtask2_06.txt, subtask2_07.txt, subtask2_08.txt, subtask3_01.txt, subtask3_02.txt, subtask3_03.txt, subtask3_04.txt, subtask3_05.txt, subtask3_06.txt, subtask3_07.txt |
Case Name |
Status |
Exec Time |
Memory |
sample_01.txt |
AC |
1 ms |
256 KB |
sample_02.txt |
AC |
1 ms |
256 KB |
subtask1_01.txt |
AC |
1 ms |
256 KB |
subtask1_02.txt |
AC |
1 ms |
256 KB |
subtask1_03.txt |
AC |
1 ms |
256 KB |
subtask1_04.txt |
AC |
1 ms |
256 KB |
subtask1_05.txt |
AC |
1 ms |
256 KB |
subtask1_06.txt |
AC |
1 ms |
256 KB |
subtask1_07.txt |
AC |
1 ms |
256 KB |
subtask1_08.txt |
AC |
1 ms |
256 KB |
subtask1_09.txt |
AC |
1 ms |
256 KB |
subtask2_01.txt |
AC |
1 ms |
256 KB |
subtask2_02.txt |
AC |
2 ms |
256 KB |
subtask2_03.txt |
AC |
2 ms |
256 KB |
subtask2_04.txt |
AC |
2 ms |
256 KB |
subtask2_05.txt |
AC |
3 ms |
256 KB |
subtask2_06.txt |
AC |
3 ms |
256 KB |
subtask2_07.txt |
AC |
3 ms |
256 KB |
subtask2_08.txt |
AC |
3 ms |
256 KB |
subtask3_01.txt |
AC |
3 ms |
256 KB |
subtask3_02.txt |
AC |
59 ms |
2560 KB |
subtask3_03.txt |
AC |
16 ms |
896 KB |
subtask3_04.txt |
AC |
25 ms |
1152 KB |
subtask3_05.txt |
AC |
60 ms |
2560 KB |
subtask3_06.txt |
AC |
55 ms |
2560 KB |
subtask3_07.txt |
AC |
60 ms |
2560 KB |