linear

Project/algorithm 2014. 5. 19. 10:20

프로그램 명: linear

제한시간: 1 초

세 수의 순서쌍을 찾는 문제이다. 순서쌍 (s1,s2,s3) 는 s2 - s1 = s3 - s2 를 만족.(s1 < s2 < s3)

예를 들어 , (1,2,3) , (2,4,6) , (14,21,28) 은 만족하는 순서쌍이다.


정렬된 집합 S 가 주어질 때 이를 만족하는 순서쌍의 개수를 출력하시오.


입력


첫 수는 집합 S 의 원소의 개수 s 이다. 원소의 개수는 3 개이상 30 개 이하이다.

다음 줄에는 s 개의 정수가 주어진다. 각 수는 1 이상 100 이하

출력


개수를 출력한다. 개수는 정수 범위를 넘지 않는다.

입출력 예


입력


7

1 2 3 4 6 8 9


출력


5


출처 : usaco


====================================================================================================


** 그렇게 어려운 문제는 아니다. 


s1,s2,s3의 위치를 잡아준 다음에, 문제의 조건을 그대로 3중 포문으로 해결하면 끝~


int arr[101];
 
int main()
{
    int n,cnt=0;;
    cin>>n;
    for(int i=0;i<n;i++) cin>>arr[i];
 
    for(int i=0;i<n-2;i++)
    {
        for(int j=i+1;j<n-1;j++)
        {
            for(int k=i+2;k<n;k++)
            {
                if(arr[k]-arr[j]==arr[j]-arr[i]) cnt++;
                else if(arr[k]-arr[j]>arr[j]-arr[i]) break;
            }
        }
    }
 
    cout<<cnt<<endl;
 
    return 0;
}