ABC 199 IPFL 해설 [ptyhon]
URL
구속
1<= N<= 2*10^{5}
1<= Q<= 3*10^{5}
문제 개요
코드 커밋
def solve(N, S, Q, T, A, B):
ans = []
for i in S:
ans.append(i)
swap_flag = False
for i in range(Q):
if T[i] == 1:
if swap_flag == False:
idx1, idx2 = A[i], B[i]
else:
if A[i] <= N:
idx1 = A[i] + N
else:
idx1 = A[i] - N
if B[i] <= N:
idx2 = B[i] + N
else:
idx2 = B[i] - N
ans[idx1-1], ans[idx2-1] = ans[idx2-1], ans[idx1-1]
else:
swap_flag = not swap_flag
#print("".join(ans), swap_flag)
if swap_flag:
ans = ans[N:] + ans[:N]
return "".join(ans)
if __name__ == "__main__":
N = int(input())
S = input()
Q = int(input())
T, A, B = [0]*Q, [0]*Q, [0]*Q
for i in range(Q):
T[i], A[i], B[i] = map(int, input().split())
print(solve(N, S, Q, T, A, B))
고찰하다.
해설
i<=N이면 j=i+N
i>N이면 j=i-N
되다
실시 방침
다음의 반성
참고 자료
해설
Reference
이 문제에 관하여(ABC 199 IPFL 해설 [ptyhon]), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/knk_kei/articles/abc199-c-ipfl텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)