杭电acm1407

http://acm.hdu.edu.cn/showproblem.php?pid=1407

刚开始用暴力,但有优化,结果一直都是TLE,不知道是不是hdoj上面有什么改动没有,后来用了打表的方法,125ms过了

View Code
 1 #include <stdio.h>  
 2 #include <math.h>  
 3   
 4 int main()  
 5 {  
 6       int x, y, z, num, flag;  
 7       int a[101];  
 8       for(x = 1; x < 101; x++) {  
 9         a[x] = x*x;  
10       }  
11       while(scanf("%d", &num) != EOF) {  
12         flag = 1;  
13         for(x = 1; a[x] < num && flag; x++) {  
14           for(y = x; a[y] < num && flag; y++) {  
15             for(z = y; a[z] < num && flag; z++) {  
16                   if(num == (a[x] + a[y] + a[z])) {  
17                     printf("%d %d %d\n", x, y, z);  
18                     flag = 0;  
19                   }  
20             }  
21           }  
22         }  
23       }  
24       return 0;  
25 }  

 

posted @ 2013-04-17 22:09  执着追求的IT小小鸟  阅读(158)  评论(0编辑  收藏  举报