답안 #22342

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
22342 2017-04-30T04:03:45 Z past future present(#977, kazel, pjh0123, nemo) Fully Generate (KRIII5_FG) C++14
2 / 7
500 ms 329024 KB
#include <cstdio>
#include <algorithm>
#include <vector>
using namespace std;
typedef long long ll;
const ll mod = 1000000007;
vector<ll> v;
vector<ll> sum;

ll pow(ll a, ll b){
    ll t = a;
    ll r = 1;
    while(b){
        if(b&1){
            r=r*t%mod;
        }
        t=t*t%mod;
        b>>=1;
    }
    return r;
}
int main(){
    ll n;
    scanf("%lld",&n);
    v.push_back(0);
    sum.push_back(0);
    v.push_back(1);
    sum.push_back(1);
    v.push_back(2);
    sum.push_back(3);
    if(n<=3){
        printf("%d\n",n==1?1:n==2?2:4);
        return 0;
    }
    for(ll i=3;i<40000000;i++){
        ll x = lower_bound(sum.begin(), sum.end(), i) - sum.begin();
        if(sum.back()+x >= n){
            x -= (sum.back()+x-n);
            v.push_back(x);
            sum.push_back(sum.back()+x);
            break;
        }
        v.push_back(x);
        sum.push_back(sum.back()+x);
    }
    v.push_back(0);
    ll x = 1;
    ll ans = 1;
    for(int i=1;i<v.size()-1;i++){
        x=x*i%mod;
        if(v[i]!=v[i+1]){
            ans=ans*pow(x,v[i])%mod;
            x = 1;
        }
    }
    printf("%lld",ans);

}

Compilation message

FG.cpp: In function 'int main()':
FG.cpp:49:18: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(int i=1;i<v.size()-1;i++){
                  ^
FG.cpp:24:21: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
     scanf("%lld",&n);
                     ^
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 1172 KB Output is correct
2 Correct 0 ms 1172 KB Output is correct
3 Correct 0 ms 1172 KB Output is correct
4 Correct 0 ms 1172 KB Output is correct
5 Correct 0 ms 1172 KB Output is correct
6 Correct 0 ms 1172 KB Output is correct
7 Correct 0 ms 1172 KB Output is correct
8 Correct 0 ms 1172 KB Output is correct
9 Correct 0 ms 1172 KB Output is correct
10 Correct 0 ms 1172 KB Output is correct
11 Correct 0 ms 1172 KB Output is correct
12 Correct 0 ms 1332 KB Output is correct
13 Correct 0 ms 1332 KB Output is correct
14 Correct 0 ms 1172 KB Output is correct
15 Correct 0 ms 1332 KB Output is correct
16 Correct 0 ms 1332 KB Output is correct
17 Correct 0 ms 1332 KB Output is correct
18 Correct 0 ms 1332 KB Output is correct
19 Correct 0 ms 1172 KB Output is correct
20 Correct 0 ms 1332 KB Output is correct
21 Correct 0 ms 1332 KB Output is correct
22 Correct 0 ms 1332 KB Output is correct
23 Correct 0 ms 1172 KB Output is correct
24 Correct 0 ms 1332 KB Output is correct
25 Correct 0 ms 1332 KB Output is correct
26 Correct 0 ms 1172 KB Output is correct
27 Correct 0 ms 1332 KB Output is correct
28 Correct 0 ms 1332 KB Output is correct
29 Correct 0 ms 1332 KB Output is correct
30 Correct 0 ms 1332 KB Output is correct
31 Correct 0 ms 1332 KB Output is correct
32 Correct 0 ms 1172 KB Output is correct
33 Correct 0 ms 1332 KB Output is correct
34 Correct 0 ms 1332 KB Output is correct
35 Correct 0 ms 1332 KB Output is correct
36 Correct 0 ms 1332 KB Output is correct
37 Correct 0 ms 1172 KB Output is correct
38 Correct 0 ms 1332 KB Output is correct
39 Correct 0 ms 1332 KB Output is correct
40 Correct 0 ms 1332 KB Output is correct
41 Correct 0 ms 1172 KB Output is correct
42 Correct 0 ms 1332 KB Output is correct
43 Correct 0 ms 1172 KB Output is correct
44 Correct 0 ms 1332 KB Output is correct
45 Correct 0 ms 1332 KB Output is correct
46 Correct 0 ms 1332 KB Output is correct
47 Correct 0 ms 1332 KB Output is correct
48 Correct 0 ms 1332 KB Output is correct
49 Correct 0 ms 1332 KB Output is correct
50 Correct 0 ms 1332 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 1172 KB Output is correct
2 Correct 0 ms 1172 KB Output is correct
3 Correct 0 ms 1172 KB Output is correct
4 Correct 0 ms 1172 KB Output is correct
5 Correct 0 ms 1172 KB Output is correct
6 Correct 0 ms 1172 KB Output is correct
7 Correct 0 ms 1172 KB Output is correct
8 Correct 0 ms 1172 KB Output is correct
9 Correct 0 ms 1172 KB Output is correct
10 Correct 0 ms 1172 KB Output is correct
11 Correct 0 ms 1172 KB Output is correct
12 Correct 0 ms 1332 KB Output is correct
13 Correct 0 ms 1332 KB Output is correct
14 Correct 0 ms 1172 KB Output is correct
15 Correct 0 ms 1332 KB Output is correct
16 Correct 0 ms 1332 KB Output is correct
17 Correct 0 ms 1332 KB Output is correct
18 Correct 0 ms 1332 KB Output is correct
19 Correct 0 ms 1172 KB Output is correct
20 Correct 0 ms 1332 KB Output is correct
21 Correct 0 ms 1332 KB Output is correct
22 Correct 0 ms 1332 KB Output is correct
23 Correct 0 ms 1172 KB Output is correct
24 Correct 0 ms 1332 KB Output is correct
25 Correct 0 ms 1332 KB Output is correct
26 Correct 0 ms 1172 KB Output is correct
27 Correct 0 ms 1332 KB Output is correct
28 Correct 0 ms 1332 KB Output is correct
29 Correct 0 ms 1332 KB Output is correct
30 Correct 0 ms 1332 KB Output is correct
31 Correct 0 ms 1332 KB Output is correct
32 Correct 0 ms 1172 KB Output is correct
33 Correct 0 ms 1332 KB Output is correct
34 Correct 0 ms 1332 KB Output is correct
35 Correct 0 ms 1332 KB Output is correct
36 Correct 0 ms 1332 KB Output is correct
37 Correct 0 ms 1172 KB Output is correct
38 Correct 0 ms 1332 KB Output is correct
39 Correct 0 ms 1332 KB Output is correct
40 Correct 0 ms 1332 KB Output is correct
41 Correct 0 ms 1172 KB Output is correct
42 Correct 0 ms 1332 KB Output is correct
43 Correct 0 ms 1172 KB Output is correct
44 Correct 0 ms 1332 KB Output is correct
45 Correct 0 ms 1332 KB Output is correct
46 Correct 0 ms 1332 KB Output is correct
47 Correct 0 ms 1332 KB Output is correct
48 Correct 0 ms 1332 KB Output is correct
49 Correct 0 ms 1332 KB Output is correct
50 Correct 0 ms 1332 KB Output is correct
51 Execution timed out 500 ms 329024 KB Execution timed out
52 Halted 0 ms 0 KB -