记录编号 353198 评测结果 EEEEEEEEEE
题目名称 中考分数 最终得分 0
用户昵称 Gravatarasd 是否通过 未通过
代码语言 C++ 运行时间 0.737 s
提交时间 2016-11-17 20:53:46 内存使用 0.30 MiB
显示代码纯文本
#include<stdio.h>
#include<stdlib.h>
int n,m,a[1001][3],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()
{ int i;
  FILE * f;
  f=fopen("mark.out","w");
  for(i=1;i<=n;i++) 
  if(a[i][1]==problem) fprintf(f,"%d",a[i][2]);
  
  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;

  a[1][2]=1;
  s++;

  for(i=2;i<=n;i++)
  { s++;
   if(a[i][0]==a[i-1][0]) {a[i][2]=a[i-1][2];continue;}
   if(s>=k) {a[i][2]=a[i-1][2]+1;s=s%k;}
  }
	
  return ;	
}