codeforce 567C

  题目:给定一个数组,任取三个数ai,aj,ak   满足  i<j<k &&  ai *q*q == aj * q == ak .

  这是大神的代码,用心去感受:

  

  

 1 map<long long ,long long >c1,c2;
 2 
 3 long long   n,k;
 4 int main()
 5 {
 6     long long  ans=0;
 7     scanf ("%I64d %I64d",&n,&k);
 8     for(int i=0;i<n;i++)
 9     {
10         long long temp;
11         scanf ("%I64d",&temp);
12         if(temp%(k*k)==0) ans+=c1[temp/k];
13         if(temp%k==0) c1[temp]+=c2[temp/k];
14         c2[temp]++;
15     }
16     printf("%I64d\n",ans);
17     return 0;
18 }

 

posted on 2015-08-10 12:36  Bei_insomia  阅读(118)  评论(0编辑  收藏  举报

导航