Pagini recente » Cod sursa (job #1533429) | Cod sursa (job #1049550) | Cod sursa (job #2069634) | Cod sursa (job #3180830) | Cod sursa (job #738547)
Cod sursa(job #738547)
#include <stdio.h>
#include <algorithm>
using namespace std;
int a[1000];
int n, m;
int cnt;
void printA()
{
for(int i = 0; i < n; i++)
printf("%d ", a[i]);
printf("\n");
}
void back(int k)
{
if(k == n) {
//printA();
cnt++;
} else {
int s;
if(k >= 3) s = max(a[k-2], a[k-3])+1;
else if(k >= 2) s = a[k-2]+1;
else s = 1;
for(int i = s; i <= m; i++) {
a[k] = i;
back(k+1);
}
}
}
void one()
{
n = 3;
m = 6;
back(0);
printf("%d\n", cnt);
}
void table()
{
for(m = 1; m <= 9; m++)
{
for(n = 1; n <= 9; n++)
{
cnt = 0;
back(0);
printf("%4d ", cnt);
}
printf("\n");
}
}
int b[1000][1000];
int c[1000][1000];
void table2()
{
//const int n = 9, m = 9;
int n,m;
FILE *fin = fopen("sir23.in", "r");
fscanf(fin, "%d", &n);
m = n;
fclose(fin);
int MOD = 1000000;
// for n = 1
for(int i = 0; i < m; i++) {
b[i][0] = i + 1;
}
// for n = 2
for(int i = 0; i < m; i++) {
b[i][1] = (b[i][0] * b[i][0]) % MOD;
}
c[0][0] = b[0][0];
c[0][1] = b[0][1];
for(int i = 1; i < m; i++) {
c[i][0] = (c[i-1][0] + b[i][0]) % MOD;
c[i][1] = (c[i-1][1] + b[i][1]) % MOD;
}
// for n >= 3
for(int i = 1; i < m; i++) {
for(int j = 2; j < n; j++) {
b[i][j] = (b[i-1][j] + b[i-1][j-1] + c[i-1][j-2]) % MOD;
//for(int k = 0; k <= i-1; k++)
// b[i][j] += b[k][j-2];
c[i][j] = (c[i-1][j] + b[i][j]) % MOD;
}
}
FILE *fout = fopen("sir23.out", "w");
int rez = b[n-1][n-1];
printf("%d\n", rez);
fprintf(fout, "%d\n", rez);
fclose(fout);
/*for(int i = 0; i < m; i++) {
for(int j = 0; j < n; j++) {
printf("%4d ", b[i][j]);
}
printf("\n");
}*/
}
int main()
{
FILE *fin = fopen("adunare.in", "r");
FILE *fout = fopen("adunare.out", "w");
int a,b;
fscanf(fin, "%d %d", &a, &b);
fprintf(fout, "%d", a+b);
return 0;
//one();
//table();
table2();
return 0;
}