結果
問題 | No.2774 Wake up Record 2 |
ユーザー | Arleen |
提出日時 | 2024-06-07 22:50:39 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 136 ms / 2,000 ms |
コード長 | 1,875 bytes |
コンパイル時間 | 175 ms |
コンパイル使用メモリ | 82,176 KB |
実行使用メモリ | 103,680 KB |
最終ジャッジ日時 | 2024-06-07 22:50:48 |
合計ジャッジ時間 | 2,356 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 40 ms
54,016 KB |
testcase_01 | AC | 46 ms
53,760 KB |
testcase_02 | AC | 41 ms
54,272 KB |
testcase_03 | AC | 39 ms
53,888 KB |
testcase_04 | AC | 40 ms
53,632 KB |
testcase_05 | AC | 40 ms
54,016 KB |
testcase_06 | AC | 40 ms
54,272 KB |
testcase_07 | AC | 40 ms
53,760 KB |
testcase_08 | AC | 39 ms
54,016 KB |
testcase_09 | AC | 59 ms
66,944 KB |
testcase_10 | AC | 42 ms
54,528 KB |
testcase_11 | AC | 94 ms
87,424 KB |
testcase_12 | AC | 73 ms
75,776 KB |
testcase_13 | AC | 136 ms
99,968 KB |
testcase_14 | AC | 104 ms
101,632 KB |
testcase_15 | AC | 101 ms
102,784 KB |
testcase_16 | AC | 92 ms
101,248 KB |
testcase_17 | AC | 103 ms
102,400 KB |
testcase_18 | AC | 113 ms
103,680 KB |
ソースコード
# ゆーさんは自分の健康増進のために「元気度」を記録してくれるロボット1と # 合計睡眠時間を記録してくれるロボット2を購入した # それぞれができる記録を時間1から時間Nまでさせた # 長さNの正整数列Aと、正整数Kが与えられる # これらはロボット1が時間iの時のゆーさんの元気度はA_iであったことを記録し、 # ロボット2がゆーさんの合計睡眠時間がKであったことを記録していたことを表している # ゆーさんは元気度がある一定の値以下である時間では寝ていて、 # そうでない時間では起きていたことがわかっている # 2以上N以下の整数kのうち、時間kでは起きていて時間k-1では寝ているものを全て昇順に出力せよ # # 2 <= K <= N <= 100000 # 1 <= A_i <= 10^9 # 入力はすべて整数 # j以下の元気度では寝ているものとしたとき、A_1 <= j # 矛盾した入力は与えられない import sys import itertools import time from math import radians, sin, cos, tan, sqrt from collections import deque def input(): return sys.stdin.readline().replace('\n','') sys.setrecursionlimit(1000000) md1 = 998244353 md2 = 10 ** 9 + 7 N, K = map(int, input().split()) A = list(map(int, input().split())) dct = {} for i in range(0, N): if A[i] not in dct: dct[A[i]] = [] dct[A[i]].append(i) explist = [] for i in range(0, N): explist.append(True) keylist = list(dct.keys()) keylist.sort() sm = 0 for i in range(0, len(keylist)): for j in range(0, len(dct[keylist[i]])): explist[dct[keylist[i]][j]] = False sm += len(dct[keylist[i]]) if sm == K: break ans = [] for i in range(1, N): if (not explist[i-1]) and explist[i]: ans.append(i+1) print(len(ans)) print(' '.join(map(str, ans)))