답안 #3548

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
3548 2013-08-31T06:31:38 Z blmarket Inherited disease (kriii1_I) C++
1 / 1
0 ms 1672 KB
#include <iostream>
#include <algorithm>
#include <cstring>
#include <cstdio>
#include <sstream>
#include <numeric>
#include <iterator>
#include <queue>
#include <set>
#include <map>
#include <vector>

#define mp make_pair
#define pb push_back
#define sqr(x) ((x)*(x))
#define foreach(it,c) for(typeof((c).begin()) it = (c).begin(); it != (c).end(); ++it)

using namespace std;

typedef vector<int> VI;
typedef vector<VI> VVI;
typedef vector<string> VS;
typedef pair<int,int> PII;

template<typename T> int size(const T &a) { return a.size(); } 

int D;
int dd[105];
const long long mod = 1000000007LL;

int main(void)
{
    scanf("%d", &D);
    for(int i=0;i<D;i++) {
        scanf("%d", &dd[i]);
    }

    if(D == 1) {
        cout << 1 << endl;
        return 0;
    }

    long long this_gen = 1;
    long long left = 1;
    long long noobs = 0;
    for(int i=1;i<=D;i++) {
        // cout << "GENERATION " << i << " LEFT = " << left << endl;
        this_gen *= i;
        this_gen %= mod;
        // cout << "THIS_GEN = " << this_gen << endl;

        cout << (left + noobs) % mod << endl;
        if(i == D) {
            //cout << left << " " << noobs << endl;
            return 0;
        }

        left += this_gen;
        if(left >= mod) left -= mod;

        noobs *= (i + 1);
        // cout << "PN=" << noobs << endl;
        noobs += (dd[i] - 1);
        noobs %= mod;
        // cout << "N=" << noobs << endl;
    }
}
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 1672 KB Output is correct
2 Correct 0 ms 1672 KB Output is correct
3 Correct 0 ms 1672 KB Output is correct
4 Correct 0 ms 1672 KB Output is correct
5 Correct 0 ms 1672 KB Output is correct
6 Correct 0 ms 1672 KB Output is correct
7 Correct 0 ms 1672 KB Output is correct
8 Correct 0 ms 1672 KB Output is correct
9 Correct 0 ms 1672 KB Output is correct
10 Correct 0 ms 1672 KB Output is correct
11 Correct 0 ms 1672 KB Output is correct
12 Correct 0 ms 1672 KB Output is correct
13 Correct 0 ms 1672 KB Output is correct
14 Correct 0 ms 1672 KB Output is correct
15 Correct 0 ms 1672 KB Output is correct
16 Correct 0 ms 1672 KB Output is correct
17 Correct 0 ms 1672 KB Output is correct
18 Correct 0 ms 1672 KB Output is correct
19 Correct 0 ms 1672 KB Output is correct
20 Correct 0 ms 1672 KB Output is correct