2013年7月2日 星期二

2013/7/2 HSNU OJ Problem : 64 - 好多三角

#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
bool cmp(int a, int b)
{
    return a < b;
}
int main()
{
    int SJ[30000];
    int n; scanf("%d", &n);
    for(int i = 0; i < n; i++)
    {
        scanf("%d", &SJ[i]);
    }
    sort(SJ, SJ+n, cmp);
    int mx = 0;
    for(int i = 1; i < n; i++)
    {
        int op = SJ[i]+SJ[i-1]; int t;
        int l = 0, r = n-1;
        if( op > SJ[n-1] ){ t = n-(i-1); }
        else
        {
            int mid = (l+r)/2;
            while( l != r-1 )
            {
                if( SJ[mid] < op ){ l = mid; }
                else{ r = mid; }
                mid = (l+r)/2;
            }
            t = r-(i-1);
        }
        mx = max(mx,t);
    }
    printf("%d\n", mx);
}

沒有留言:

張貼留言