コンテストの制限時間が終了しました。
以降も提出を行うことができますが、順位集計には反映されません。
以降も提出を行うことができますが、順位集計には反映されません。
ソースコード
SELECT
RANK() over (order by POINT DESC, A_time + PENALTY ASC) AS RANK
,USER_ID
,POINT
,A_time + PENALTY AS EX_TIME
,WRONG_ANS
FROM
(
SELECT
Points.USER_ID
,Points.POINT
,Points.A_time
,CASE WHEN SUB_PENALTY.WA_CNT IS NULL
THEN 0 ELSE SUB_PENALTY.WA_CNT
END AS WRONG_ANS
,CASE WHEN SUB_PENALTY.PENALTY IS NULL
THEN 0 ELSE SUB_PENALTY.PENALTY
END AS PENALTY
FROM
(
SELECT
USER_ID
,SUM(POINT) AS POINT
,MAX(A_time) AS A_time
FROM
(
SELECT
PROBLEM_ID
, E.USER_ID
, E.ENTRY_ID
,SUBMITTED_AT
,STATUS
,POINT
,STARTED_AT
,strftime('%s',SUBMITTED_AT) - strftime('%s',STARTED_AT) AS A_time
FROM
SUBMISSIONS AS S
INNER JOIN ENTRIES AS E
ON S.ENTRY_ID = E.ENTRY_ID
WHERE
S.CONTEST_ID = 2
AND STATUS = 'AC'
) AS T_Point
GROUP BY USER_ID
HAVING SUM(POINT) > 0
) AS Points
LEFT OUTER JOIN
(
SELECT
USER_ID
,COUNT(USER_ID) AS WA_CNT
,COUNT(USER_ID) * 300 AS PENALTY
FROM
(
SELECT
SUB_AC.USER_ID
,SUB_AC.PROBLEM_ID
,SUB_WA.SUBMITTED AS WA_Submit
,SUB_AC.SUBMITTED AS AC_Submit
FROM
(
SELECT
USER_ID
,PROBLEM_ID
,STATUS
,strftime('%s',SUBMITTED_AT) AS SUBMITTED
FROM
SUBMISSIONS
WHERE
STATUS = 'WA'
AND ENTRY_ID IS NOT NULL
) AS SUB_WA
INNER JOIN
(
SELECT
USER_ID
,PROBLEM_ID
,STATUS
,SUBMITTED_AT
,strftime('%s',SUBMITTED_AT) AS SUBMITTED
FROM
SUBMISSIONS
WHERE
STATUS = 'AC'
AND ENTRY_ID IS NOT NULL
) AS SUB_AC
ON SUB_WA.USER_ID = SUB_AC.USER_ID
AND SUB_WA.PROBLEM_ID = SUB_AC.PROBLEM_ID
WHERE
WA_Submit < AC_Submit
) AS WAs
GROUP BY
USER_ID
) AS SUB_PENALTY
ON Points.USER_ID = SUB_PENALTY.USER_Id
) AS TOTAL
ORDER BY
RANK, WRONG_ANS, USER_ID
提出情報
提出日時 | 2025/02/12 18:40:20 |
コンテスト | 第3回 SQLコンテスト |
問題 | 順位計算 |
受験者 | chibisuke1016 |
状態 (詳細) | WA (Wrong Answer: 誤答) |
メモリ使用量 | 86 MB |
メッセージ
テストケース(通過数/総数)
1/2
状態
メモリ使用量
データパターン1
AC
85 MB
データパターン2
WA
86 MB