比赛 普及组2016模拟练习3 评测结果 C
题目名称 中考分数 最终得分 0
用户昵称 Tabing010102 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2016-11-15 20:06:47
显示代码纯文本
#include <cstdio>
#include <algorithm>
#include <cstdlib>
using namespace std;
const int maxn = 1000+10;
FILE *fin, *fout;
int n, m, k, x, ans=-1;
struct D {
	int v, id;
}d[maxn];
bool cmp(D &a, D &b) { return a.v>a.v; }
int main() {
	fin = fopen("mark.in", "r");
	fout = fopen("mark.out", "w");
	fscanf(fin, "%d%d", &n, &m);
	if(m == 0) { fprintf(fout, "1\n"); exit(0); }
	k = n/m;
	for(int i = 0; i < n; i++) {
		fscanf(fin, "%d", &d[i].v);
		d[i].id = i;
	}
	sort(d, d+n, cmp);
	fscanf(fin, "%d", &x); x--;
	for(int i = 0; i < n; i++) {
		if(d[i].id == x) {
			int tmp = i;
			while(d[tmp-1].v == d[i].v) tmp--;
			ans = (tmp+1)/k;
			if((tmp+1)%k != 0) ans++;
			break;
		}
	}
	fprintf(fout, "%d\n", ans);
	return 0;
}