Pagini recente » Cod sursa (job #1244732) | Cod sursa (job #2740014) | Cod sursa (job #2613183) | Cod sursa (job #1935548) | Cod sursa (job #409271)
Cod sursa(job #409271)
#include <stdio.h>
#include <stdlib.h>
#define FIN "stramosi.in"
#define FOUT "stramosi.out"
#define NO_T_DEBUG
int main() {
int N, M, i, j, pm_s, cm, pd;
int **pm;
FILE *fin, *fout;
fin = fopen(FIN, "r");
fscanf(fin, "%d", &N);
fscanf(fin, "%d", &M);
/* Alocam memorie pentru matrice */
pm_s = N + 1;
pm = calloc(pm_s, sizeof(*pm));
for (i = 0; i < pm_s; i++) {
pm[i] = calloc(pm_s, sizeof(*pm));
}
/* Completam prima coloana din matrice -
parintii de rang 1 */
for (i = 1; i < pm_s; i++) {
fscanf(fin, "%d", &pm[i][1]);
}
for (i = 1; i < pm_s; i++) {
for (j = 2; j < pm_s; j++) {
pm[i][j] = pm[ pm[i][j-1] ][1];
if(pm[i][j] == 0){
break;
}
}
}
fout = fopen(FOUT, "w");
for(i = 0 ; i < M ; i++){
fscanf(fin, "%d %d", &cm, &pd);
fprintf(fout, "%d\n", pm[cm][pd]);
}
#ifndef NO_T_DEBUG
for (i = 0; i < pm_s; i++) {
for (j = 0; j < pm_s; j++) {
printf("%2d ", pm[i][j]);
}
printf("\n");
}
#endif
fclose(fin);
fclose(fout);
return (0);
}