|
|
@ -41,9 +41,6 @@ size_t read_ints(char *str, int **ints) { |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
int read_adp(int n, int (*adp)[3]) { |
|
|
int read_adp(int n, int (*adp)[3]) { |
|
|
if (n < 1) { |
|
|
|
|
|
return 1; |
|
|
|
|
|
} |
|
|
|
|
|
char buf[BUF_SIZE]; |
|
|
char buf[BUF_SIZE]; |
|
|
int *ints; |
|
|
int *ints; |
|
|
size_t ints_len; |
|
|
size_t ints_len; |
|
|
@ -58,21 +55,55 @@ int read_adp(int n, int (*adp)[3]) { |
|
|
adp[i][0] = ints[0]; |
|
|
adp[i][0] = ints[0]; |
|
|
adp[i][1] = ints[1]; |
|
|
adp[i][1] = ints[1]; |
|
|
adp[i][2] = ints[2]; |
|
|
adp[i][2] = ints[2]; |
|
|
|
|
|
free(ints); |
|
|
} |
|
|
} |
|
|
return 0; |
|
|
return 0; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
int min_const_diff(int n, int (*adp)[3], int i, int j) { |
|
|
|
|
|
return 0; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
int add_powers(int n, int (*adp)[3], int i, int j, int v) { |
|
|
|
|
|
return 0; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
int handle_query(char *str, int n, int (*adp)[3]) { |
|
|
|
|
|
int *ints; |
|
|
|
|
|
int ints_len = read_ints(str, &ints); |
|
|
|
|
|
if (ints_len < 1) { |
|
|
|
|
|
return 1; |
|
|
|
|
|
} |
|
|
|
|
|
int query_type = ints[0]; |
|
|
|
|
|
if (query_type == 0) { |
|
|
|
|
|
if (ints_len != 3) { |
|
|
|
|
|
return 1; |
|
|
|
|
|
} |
|
|
|
|
|
return min_const_diff(n, adp, ints[1], ints[2]); |
|
|
|
|
|
} |
|
|
|
|
|
if (query_type == 1) { |
|
|
|
|
|
if (ints_len != 4) { |
|
|
|
|
|
return 1; |
|
|
|
|
|
} |
|
|
|
|
|
return add_powers(n, adp, ints[1], ints[2], ints[3]); |
|
|
|
|
|
} |
|
|
|
|
|
return 1; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
int main(int argc, char **argv) { |
|
|
int main(int argc, char **argv) { |
|
|
char buf[BUF_SIZE]; |
|
|
char buf[BUF_SIZE]; |
|
|
fgets(buf, BUF_SIZE, stdin); |
|
|
fgets(buf, BUF_SIZE, stdin); |
|
|
|
|
|
|
|
|
char *end; |
|
|
char *end; |
|
|
int n = strtol(buf, &end, 10); |
|
|
int n = strtol(buf, &end, 10); |
|
|
if (!isspace(*end)) { |
|
|
|
|
|
|
|
|
if (!isspace(*end) || n < 1) { |
|
|
return 0; |
|
|
return 0; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
int (*adp)[3] = malloc(3 * n * sizeof **adp); |
|
|
int (*adp)[3] = malloc(3 * n * sizeof **adp); |
|
|
|
|
|
if (adp == NULL) { |
|
|
|
|
|
return 0; |
|
|
|
|
|
} |
|
|
int err = read_adp(n, adp); |
|
|
int err = read_adp(n, adp); |
|
|
if (err) { |
|
|
if (err) { |
|
|
return 0; |
|
|
return 0; |
|
|
@ -82,5 +113,19 @@ int main(int argc, char **argv) { |
|
|
printf("%d %d %d\n", adp[i][0], adp[i][1], adp[i][2]); |
|
|
printf("%d %d %d\n", adp[i][0], adp[i][1], adp[i][2]); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
fgets(buf, BUF_SIZE, stdin); |
|
|
|
|
|
int q = strtol(buf, &end, 10); |
|
|
|
|
|
if (!isspace(*end)) { |
|
|
|
|
|
return 0; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
for (i = 0; i < q; i++) { |
|
|
|
|
|
fgets(buf, BUF_SIZE, stdin); |
|
|
|
|
|
err = handle_query(buf, n, adp); |
|
|
|
|
|
if (err) { |
|
|
|
|
|
return 0; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
return 0; |
|
|
return 0; |
|
|
} |
|
|
} |