50227. Quaternary Quartic Equation
難度:3.6/5
如果:1
2
3
4
5
6
7
8
9
10
11
12
13
14for(d = 0; ...)
for(c = d + 1; ...)
for(b = c + 1; ...)
for(a = b + 1; ...)
```
是會TLE的。
要把他換成
```c=
for(d = 0; ...)
for(c = d + 1; ...)
for(b = c + 1; ...)
int a = sum[0] - b - c - d;
if(a <= b) break;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <stdint.h>
int check(int a, int b, int c, int d, int sum[4]){
return (((a*a) + (b*b) + (c*c) + (d*d) == sum[1]) &&
((a*a*a) + (b*b*b) + (c*c*c) + (d*d*d) == sum[2]) &&
((a*a*a*a) + (b*b*b*b) + (c*c*c*c) + (d*d*d*d) == sum[3]));
}
int main(){
int sum[4];
scanf("%d %d %d %d", &sum[0], &sum[1], &sum[2], &sum[3]);
for(int d = 1; d < sum[0]; d++){
for(int c = d + 1; c < sum[0]; c++){
for(int b = c + 1; b < sum[0]; b++){
if(sum[0] - b - c - d <= b) break;
int a = sum[0] - b - c - d;
if(check(a, b, c, d, sum)){
printf("%d\n%d\n%d\n%d\n", a, b, c, d);
return 0;
}
}
}
}
printf("-1\n");
return 0;
}