pat 2 레벨 1030C 언어

6577 단어 pat 시험patc 언어
1030 완벽한 수열(25점)
정수 수열과 정수 p를 정하고 이 수열의 최대 값은 M이고, 최소 값은 m이며, 만약 M≤mp라면 이 수열은 완벽한 수열이라고 한다.현재 매개 변수 p와 정수를 정합니다. 가능한 한 많은 수를 선택하여 완벽한 수열을 구성하십시오.입력 형식:
첫 번째 줄을 입력하면 두 개의 정수 N과 p가 나오는데 그 중에서 N(≤100000)은 입력한 정수의 개수이고 p(≤10의 9회)는 주어진 매개 변수이다.두 번째 행에는 각 수가 10을 초과하지 않는 9회의 양의 정수가 N씩 표시됩니다.출력 형식:
한 줄에서 출력할 수 있는 최대 몇 개의 수를 선택하여 그것들로 완벽한 수열을 만들 수 있습니다.
사고의 방향
stdlib 라이브러리의 qsort를 사용하여 빠른 정렬을 하고 정렬 후 옮겨다니기
#include
#include 

int cmp(const void *a, const void *b) 
{
	return *(long long *)a - *(long long *)b;
}

int main()
{
    int N=0,p,temp=0;
    scanf("%d %d",&N,&p);
    long long a[N],n;
    for(int i=0;i<N;i++)
    {
        scanf("%lld",&a[i]);
    }
    qsort(a, N, sizeof(long long), cmp);
    int max=0;
    for(int i=0;i+max<N;i++)//       
    {
        for(int j=i+max;j<N;j++)
        {
            if(a[j]<=a[i]*p) max++;//                
            else break;//     
        }
    }
    printf("%d",max);
}

좋은 웹페이지 즐겨찾기