검색결과 리스트
글
linear
프로그램 명: 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;
}
'Project > algorithm' 카테고리의 다른 글
변수값 바꾸는 함수, 배열 순서 바꿔주는 함수 작성하기 (0) | 2015.06.07 |
---|---|
소수 찾아내는 알고리즘 (0) | 2014.06.02 |
부분 구간의 합 구하기 (0) | 2014.05.25 |
케이크 나누기 (0) | 2014.05.21 |