1 条题解
-
0
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
- 上传者