1 条题解

  • 0
    @ 2025-4-12 21:43:14

    C :

    #include<stdio.h>
    
    int main()
    {
    	int n;
    	while(scanf("%d",&n)!=EOF)
    	{
    		int a[100];
    		int i,j,flog=0,t,t1;
    		for(i=0;i<n;i++)
    			scanf("%d",&a[i]);
    		for(i=0;i<n-1;i++)
    		{
    			if(a[i]>a[i+1])
    			{
    				t=a[i];
    				a[i]=a[i+1];
    				a[i+1]=t;
    			}
    			
    			for(j=i+1;j<n-1;j++)
    			{
    				
    				if( (a[j]>a[i]&&a[j]<a[i+1]&& (a[j+1]>a[i+1]||a[j+1]<a[i]) )||(a[j+1]>a[i]&&a[j+1]<a[i+1]&& (a[j]>a[i+1]||a[j]<a[i])) )
    				{
    					printf("yes\n");
    					flog=1;
    					break;
    				}
    			}
    			if(flog==1)
    				break;
    
    		}
    		if(flog==0)
    			printf("no\n");
    	}
    	return 0;
    }
    

    C++ :

    #include<stdio.h>
    #include<iostream>
    #include<algorithm>
    using namespace std;
    int a[1005];
    struct kk{
      int zhi;
      int xuhao;
    }b[1005];
    bool cmp(kk a,kk b)
    {
        return a.zhi<b.zhi;
    }
    int main()
    {
        int n;
        while(scanf("%d",&n)!=EOF)
        {
        for(int i=0;i<n;i++)
        {
            scanf("%d",&a[i]);
            b[i].zhi=a[i];
            b[i].xuhao=i;
        }
        sort(b,b+n,cmp);
        for(int i=0;i<n;i++)
        a[b[i].xuhao]=i+1;
        //for(int i=0;i<n;i++)
           // printf("%d ",a[i]);
        int k=a[0];
        int max=n,min=1;
        int flag=0;
        for(int i=1;i<n;i++)
        {
            if(a[i]-k==1||k-a[i]==1)
            {  //cout<<1<<endl;
                max--;
                for(int j=i;j<n;j++)
                 {
                     if(a[j]>k)
                       a[j]--;
                 }
    
                k=a[i];
            }
            else if(k==max||k==min)
            {  //cout<<2<<endl;
                if(k==max&&a[i]==min)
                {
                    max--;
                }
                else if(k==min&&a[i]==max)
                    min++;
                else flag=1;
                k=a[i];
            }
            else flag=1;
            if(flag==1) break;
        }
       // cout<<max<<" "<<min<<endl;
        if(flag==1) printf("yes\n");
        else printf("no\n");
        }
    }
    
    • 1

    信息

    ID
    1311
    时间
    1000ms
    内存
    128MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者