ABC354のC問題について 以下のようなプログラムを提出しました.入出力例においては正しい結果を返すのですが,採点するとWAとなってしまいます.どこが間違っているのか教えて頂けないでしょうか. 問題URL : https://atcoder.jp/contests/abc354/tasks/abc354_c #include <stdio.h> #include <stdlib.h> typedef struct Card { int attack; int cost; int index; int throw; } Card; int cmp_cost(const void *n1, const void *n2) { if (((Card *)n1) -> cost > ((Card *)n2) -> cost) { return 1; } else if (((Card *)n1) -> cost < ((Card *)n2) -> cost) { return -1; } else { return 0; } } int cmp_index(const void *n1, const void *n2) { if (((Card *)n1) -> index > ((Card *)n2) -> index) { return 1; } else if (((Card *)n1) -> index < ((Card *)n2) -> index) { return -1; } else { return 0; } } int main(void) { int n; scanf("%d", &n); Card card[300000]; for (int i = 0; i < n; i++) { scanf("%d", &card[i].attack); scanf("%d", &card[i].cost); card[i].index = i + 1; card[i].throw = 0; } qsort(card, n, sizeof(Card), cmp_cost); int m = n; for (int i = 0; i < n - 1; i++) { if (card[i].attack > card[i + 1].attack) { card[i + 1].throw = 1; m--; } } qsort(card, n, sizeof(Card), cmp_index); printf("%d¥n", m); for (int i = 0; i < n; i++) { if (card[i].throw == 0) { printf("%d ", card[i].index); } } printf("¥n"); return 0; }
C言語関連