Mai intai trebuie sa te autentifici.
Cod sursa(job #2211576)
| Utilizator | Data | 10 iunie 2018 22:13:43 | |
|---|---|---|---|
| Problema | Numerele lui Stirling | Scor | 90 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.72 kb |
#include<fstream>
using namespace std;
const int MOD=98999, N=201;
int s[N][N], S[N][N];
void stirling1(){
s[1][1]=1;
for(int i=2;i<N;i++)
for(int j=1;j<=i;j++)
s[i][j]=((i-1)*s[i-1][j]+s[i-1][j-1])%MOD;
}
void stirling2(){
S[1][1]=1;
for(int i=2;i<N;i++)
for(int j=1;j<=i;j++)
S[i][j]=(j*S[i-1][j]+S[i-1][j-1])%MOD;
}
int main(){
stirling1(); stirling2();
ifstream in("stirling.in");
FILE *out=fopen("stirling.out","w");
int t, speta, n, m;
in>>t;
while(t--){
in>>speta>>n>>m;
if(speta==1)
if((n+m)%2==0) fprintf(out,"%d\n",s[n][m]);
else fprintf(out,"-%d\n",s[n][m]);
else fprintf(out,"%i\n",S[n][m]);
}
in.close(); fclose(out);
return 0;
}
