比赛 普及组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 ;	
}