Lightoj 1307 Counting Triangles

来源:互联网 发布:淘宝不用背字根学五笔 编辑:程序博客网 时间:2024/05/16 14:24

题意:

给你n个木条,问有多少种方案组成三角形、

题解:

将所有木条排序,因为三角形两边之和大于第三边,找出小于两边之和的木条

#include "cstdio"  #include "algorithm"  using namespace std;  int a[10100];  int main() {      int n, caseno = 0, cases;      scanf("%d", &cases);      while( cases-- ) {          scanf("%d",&n);          int summ=0;          for(int i=1;i<=n;i++)              scanf("%d",&a[i]);          sort(a+1,a+1+n);          for(int i=1;i<=n-2;i++){              for(int j=i+1;j<=n-1;j++){                  int c=a[i]+a[j];                  long k = lower_bound (a+1, a+n+1, c) - a;                  summ+=(k-j-1);              }          }          printf("Case %d: %d\n", ++caseno, summ );      }      return 0;  }  

0 0
原创粉丝点击