#define _DEBUG 0 #include #include #include #include //■構造体qsort(複数文字列も可) typedef struct st { int idx; long long a; long long b; long long c; long long diff; } st; #define _SORT_TYPE st #define _LIST_NUM (200010) _SORT_TYPE stList[_LIST_NUM]; // 昇順:上から1,-1,0 int cmpnum_idx_asc(const void * n1, const void * n2){ if(((_SORT_TYPE *)n1)->idx > ((_SORT_TYPE *)n2)->idx)return 1; else if(((_SORT_TYPE *)n1)->idx < ((_SORT_TYPE *)n2)->idx)return -1; else return 0; } int cmpnum_a_asc(const void * n1, const void * n2){ if(((_SORT_TYPE *)n1)->a > ((_SORT_TYPE *)n2)->a)return 1; else if(((_SORT_TYPE *)n1)->a < ((_SORT_TYPE *)n2)->a)return -1; else return 0; } int cmpnum_b_asc(const void * n1, const void * n2){ if(((_SORT_TYPE *)n1)->b > ((_SORT_TYPE *)n2)->b)return 1; else if(((_SORT_TYPE *)n1)->b < ((_SORT_TYPE *)n2)->b)return -1; else return 0; } int cmpnum_c_asc(const void * n1, const void * n2){ if(((_SORT_TYPE *)n1)->c > ((_SORT_TYPE *)n2)->c)return 1; else if(((_SORT_TYPE *)n1)->c < ((_SORT_TYPE *)n2)->c)return -1; else return 0; } int cmpnum_diff_dsc(const void * n1, const void * n2){ if(((_SORT_TYPE *)n1)->diff > ((_SORT_TYPE *)n2)->diff)return -1; else if(((_SORT_TYPE *)n1)->diff < ((_SORT_TYPE *)n2)->diff)return 1; else return 0; } int main(void) { int scan;//scanf警告用 int i, j; int n,k;scan=scanf("%d%d",&n,&k); long long val; //【A】 for(i=0; istList[i].c) { //塩? if(bcountstList[i].b) { //タレ? if(ccount