比赛 |
普及组2016模拟练习3 |
评测结果 |
AWWWWWWWWW |
题目名称 |
中考分数 |
最终得分 |
10 |
用户昵称 |
asd |
运行时间 |
0.005 s |
代码语言 |
C++ |
内存使用 |
0.30 MiB |
提交时间 |
2016-11-15 19:52:22 |
显示代码纯文本
- #include<stdio.h>
- #include<stdlib.h>
- int n,m,a[1001][2],problem,ans[1001];
- void find();
- void readl()
- { int i;
- FILE * f;
- f=fopen("mark.in","r");
- fscanf(f,"%d %d",&n,&m);
-
- for(i=1;i<=n;i++)
- fscanf(f,"%d",&a[i][0]);
-
- for(i=1;i<=n;i++)
- a[i][1]=i;
-
- fscanf(f,"%d",&problem);
- fclose(f);
- return ;
- }
-
- void print()
- { FILE * f;
- f=fopen("mark.out","w");
-
- fprintf(f,"%d",ans[problem]);
-
- fclose(f);
- return ;
- }
-
- int cmp(const void * a,const void * b)
- { int * x=(int *)a;
- int * y=(int *)b;
- if(*x>*y) return -1;
- else return 1;
- }
-
- int main()
- { readl();
- find();
- print();
- return 0;
- }
-
- void find()
- {
- qsort(a+1,n,sizeof(a[0]),cmp);
-
- int i,k=m/n,s=0;
-
- ans[a[1][1]]=1;
- s++;
-
- for(i=2;i<=n;i++)
- { s++;
- if(a[i][0]==a[i-1][0]){ans[a[i][1]]=ans[a[i-1][1]];continue;}
- if(s>k) {s-=k;ans[a[i][1]]=ans[a[i-1][1]]+1;}
- else ans[a[i][1]]=ans[a[i-1][1]];
- }
-
- return ;
- }