1 条题解

  • 0
    @ 2024-12-26 17:11:44

    C :

    #include <stdio.h>
    int els[101];
    int main(void)
    {
    	int n,h,m;
    	scanf("%d%d%d",&n,&h,&m);
    	int x=0,top=1,dow;
    	for(int i=0;i<m;i++){
    		scanf("%d",&x);
    		els[x]++;
    		dow=1;
    		for(int j=1;j<=n;j++) if(els[top]<els[j]) top=j;  //判断此时最高点 
    		for(int j=1;j<=n;j++) if(els[dow]>els[j]) dow=j;  //判断此时最低点 
    		if(els[top]-els[dow]==h){
    			printf("NO\n%d",top);
    			return 0;
    		} 
    	}
    	printf("YES\n%d",els[dow]);
    	return 0;
     } 
    

    C++ :

    #include <bits/stdc++.h>
    #define int long long
    using namespace std;
    const int N=1e5+10;
    int a[N];
    int b[N];
    int c[N];
    void solve()
    {
    	int n,m,h;
    	cin>>n>>h>>m;
    	int minn = 1001;
    	for(int i=1;i<=m;i++)
    	{
    		cin>>a[i];
    	}
    	int k = 1;
    	for(int i=1;i<=m;i++)
    	{
    		bool f = false;
    		int res = 1100;
    		b[a[i]] ++;
    		if(b[a[i]] >= h)
    		{
    			cout<<"NO"<<'\n';
    			cout<<a[i]<<'\n';
    			return;
    		}
    		c[b[a[i]]] ++;
    		if(c[b[a[i]]] == n)
    		{
    			h++;
    		}
    	}
    	for(int i=1;i<=n;i++)
    	{
    		minn = min(minn,b[i]);
    	}
    	cout<<"YES"<<'\n';
    	cout<<minn<<'\n';
    }
    signed main()
    {
    	ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
    	int t;
    	t=1;
    	//cin>>t;
    	while(t--)     
    	{
    		solve();
    	}
    	return 0;
    }
    
    • 1

    信息

    ID
    735
    时间
    1000ms
    内存
    128MiB
    难度
    9
    标签
    提交数
    26
    已通过
    4
    上传者