http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3844

 

第一个,n个数,每次操作最大数和最小数都变成他们的差值,最后n个数相同时输出此时的值,暴力跑。

 

 1 #include<cstdio>
 2 int main(){
 3     int t,n,a[16];
 4     while(~scanf("%d",&t)){
 5         while(t--){
 6             scanf("%d",&n);
 7             for(int i=0;i<n;i++){
 8                 scanf("%d",&a[i]);
 9             }
10             while(true){
11                 int bid=0,sid=0;
12                 for(int i=1;i<n;i++){
13                     if(a[bid]<a[i]) bid=i;
14                     if(a[sid]>a[i]) sid=i;
15                 }
16                 if(a[bid]==a[sid]){
17                     printf("%d\n",a[sid]);
18                     break;
19                 }
20                 a[bid]=a[sid]=a[bid]-a[sid];
21             }
22         }
23     }
24     return 0;
25 }
View Code

相关文章: