zoukankan      html  css  js  c++  java
  • LightOJ 1307 :构造三角形

    Description

    You are given N sticks having distinct lengths; you have to form some triangles using the sticks. A triangle is valid if its area is positive. Your task is to find the number of ways you can form a valid triangle using the sticks.

    Input

    Input starts with an integer T (≤ 10), denoting the number of test cases.

    Each case starts with a line containing an integer N (3 ≤ N ≤ 2000). The next line contains N integers denoting the lengths of the sticks. You can assume that the lengths are distinct and each length lies in the range [1, 109].

    Output

    For each case, print the case number and the total number of ways a valid triangle can be formed.

    Sample Input

    3

    5

    3 12 5 4 9

    6

    1 2 3 4 5 6

    4

    100 211 212 121

    Sample Output

    Case 1: 3

    Case 2: 7

    Case 3: 4

    #include<cstdio>
    #include<cstring>
    #include<cmath>
    #include<queue>
    #include<algorithm>
    using namespace std;
    int s[2001];
    int main()
    {
    	int t;
    	scanf("%d",&t);
    	int ans=0;
    	while(t--)
    	{
    		int n,q;
    		ans++;
    		scanf("%d",&n);
    		for(int i=0;i<n;i++)
    		{
    		  scanf("%d",&s[i]);
    		}
    		sort(s,s+n);
    		int  num=0;
    		for(int i=0;i<n;i++)
    		{
    			for(int j=i+1;j<n;j++)
    			{
    			
    					q=s[j]+s[i];
    				int id=lower_bound(s+j,s+n,q)-s;
    				if(j==id)
    				{
    					continue;
    				}
    			   	num=num+(id-j-1);
    			}
    		
    		}
    		printf("Case %d: %d
    ",ans,num);
    	}
    	return 0;
    }
    


  • 相关阅读:
    day13_迭代器,生成器
    作业礼包
    day12_装饰器进阶
    装饰器作业
    day11_装饰器
    函数作业
    day10-函数进阶
    数据类型-习题解答
    day09_函数
    PHP 完美分页
  • 原文地址:https://www.cnblogs.com/kingjordan/p/12027022.html
Copyright © 2011-2022 走看看