Loading [MathJax]/jax/output/SVG/jax.js

Областная олимпиада по информатике 2020 год, 9-11 классы


Задача A. Қояндар

Ограничение по времени:
2 seconds
Ограничение по памяти:
256 megabytes

Айбарда K бөлімнен тұратын бақша бар. Бақшада n қояндар тұрады. Әрбір қоян бақшаның бір бөлімінде орналасқан. Кейде қояндар көршілес бөлімдерге өтуі мүмкін. Сондай-ақ, кейде Айбар оларды тамақтандыру үшін кейбір бөлімдердегі қояндардың санын білу керек. Айбарға q сұраныстар берілген. Олар келесі түрде болады:
Формат входного файла
Бірінші жолда екі сан берілген - n және K. \\ Екінші жолда n сандар - әрбір қоянның бастапқыда орналасқан бөлімнің нөмірі көрсетілген.\\ Содан кейін жеке жолда сұраныстардың санын сипаттайтын q саны берілген. Келесі q жолдарда сұраныстардың сипаттаулары берілген. Сұраулар келесі түрде беріледі:
Формат выходного файла
Үшінші типтегі әрбір сұранысқа бөлек жолда бір сан — сұраныстың жауабын шығарыңыз.
Система оценки
Бұл есеп 3 бөлімнен тұрады:
  1. $1 <= n, K, q <= 1000.20$ баллға бағаланады.
  2. $1 <= n, K, q <= 5 * 10^5.Қояндардыңкөшусұрауларыжоқ.20$ баллға бағаланады.
  3. $1 <= n, K, q <= 5 * 10^5.60$ баллға бағаланады.
Пример:
Вход
3 10
4 2 8
4
G 3 7
R 2
L 3
G 3 7
Ответ
1
3
( Sanjar Bidaibek )
посмотреть в олимпиаде

Комментарий/решение:

  1
5 года 4 месяца назад #

кодты корсету/жасыру

C++

пред. Правка 2   -1
3 года 3 месяца назад #

DELETED

  2
4 года 9 месяца назад #

Дерево отрезков ;)

кодты корсету/жасыру

C++

  0
4 года 6 месяца назад #

Кому интересно это решение через Дерево Фенвика!

кодты корсету/жасыру

C++

  12
4 года 2 месяца назад #

кодты корсету/жасыру

C++

  0
3 года 8 месяца назад #

Обычное дп

кодты корсету/жасыру

C++

  0
3 года 7 месяца назад #

Решение на Python:

kr, gr = map(int, input().split())

sad=[]

z=0

schet=0

superschet=[]

sad=(input().split())

for i in range(len(sad)):

z=int(sad[i])

sad[i]=z

deis=input()

deis=int(deis)

for i in range(deis):

hod=input().split()

if(hod[0]=="G"):

for i in range(len(sad)):

if(sad[i]>=int(hod[1]) and sad[i]<=int(hod[2])):

schet+=1

superschet.append(schet)

schet=0

if(hod[0]=="R"):

sad[int(hod[1])-1]=sad[int(hod[1])-1]+1

if(hod[0]=="L"):

sad[int(hod[1])-1]=sad[int(hod[1])-1]-1

for i in range(len(superschet)):

print(superschet[i])

  0
3 года 5 месяца назад #

кодты корсету/жасыру

C++

  0
3 года 5 месяца назад #

кодты корсету/жасыру

C++

  0
3 года 4 месяца назад #

кодты корсету/жасыру

C++

  0
3 года 4 месяца назад #

#python

n, k = map(int, input().split())

a = list(map(int, input().split()))

g = int(input())

b = [0]

l = []

for i in range(n):

b.append(a[i])

for i in range(g):

s = input().split()

w = 0

if 'G' in s:

x = int(s[1])

y = int(s[2])

for j in b:

if x <= j <= y:

w += 1

l.append(w)

if 'R' in s:

x = int(s[1])

b[x] = b[x] + 1

if 'L' in s:

x = int(s[1])

b[x] = b[x] - 1

print(*l)

  0
3 года 2 месяца назад #

Не за что)

кодты корсету/жасыру

C++