#include <stdio.h> #include <stdlib.h> int comp_inc(const void *first, const void *second) { return *(int *)first-*(int *)second; } int times[2048]; int main() { int n, k; scanf("%d %d", &n, &k); int i; for(i=0; i<n; ++i) scanf("%d", ×[i]); qsort(times, n, sizeof(int), comp_inc); int Count=0; for(i=2; i<n; ) { if((5-times[i])>=k) ++Count; else break; i+=3; } printf("%d\n", Count); return 0; }
@先将读入的数据按照从小到达的顺序进行排序,然后从第一个数据开始,以三个数据为一组。依次查看每组中最后一名选手剩余参赛次数是否大于等于题目要求的次数,若满足则这三名选手可以组成一队去参加世界赛,可参赛队伍加一;若不满足时,则直接跳出循环或者直至循环执行结束。变量Count最后的值即为Answer。