Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <assert.h>
- using namespace std;
- const int MAXN=1000000;
- int enumera(int N, int M) {
- int i, j;
- long long int A[MAXN+1];
- A[0]=-1;
- A[1]=0;
- long long int somma=-1;
- for (i=2;i<N+1;i++)
- {
- long long int tmp=(A[i-1]*i-somma);
- A[i]=tmp;
- somma+=A[i];
- }
- return A[N]%M;
- }
- int main() {
- FILE *fr, *fw;
- int N, M;
- fr = fopen("input.txt", "r");
- fw = fopen("output.txt", "w");
- assert(2 == fscanf(fr, "%d%d", &N, &M));
- fprintf(fw, "%d\n", enumera(N, M));
- fclose(fr);
- fclose(fw);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement