TOPIC
PROBLEM 1262 - URI Fórum 1.0
This topic was solved and cannot recieve new replies.
-
mleao1 replied 9 years ago
É bem simples: cada operação de gravação (W) tem que ser executada em separado, mas até P (P = número de processos) gravaçoes de leitura (R) podem ser executadas simultaneamente computando um único ciclo. Então se p = 2, RW são dois ciclos, e RRW também são dois ciclos, porque os dois Rs seguidos contam como um único ciclo.
Por exemplo, no caso RWWRRR, p = 3, temos 4 ciclos: R W W RRR (até p=3 leituras podem ser agrupadas juntas)
-
voliveira4 replied 8 years ago
Alguém pode me explicar porque no 3º exemplo que o URI fornece: RRRRRRRRRR 4. A resposta é 3?
Porque no meu entendimento a string ficaria dividida assim:
- RRRR - 1 ciclo
- RRRR - 1 ciclo
- R - 1 ciclo
- R - 1 ciclo
Resultando em 4 ciclos.
Grato desde já.
-
rfabiam replied 9 years ago
Pessoal, Para fazer com que ele pare com EOF, eu coloquei esse codigo em Java:
InputStreamReader ir = new InputStreamReader(System.in); BufferedReader in = new BufferedReader(ir); String texto; while ((texto = in.readLine()) != null) { //codigo }
Isso esta correto?
-
jroberto0 replied 9 years ago
Nossaaaa!!!! Era só isso mesmo que estava faltando!!! Muito obrigado Matheus!
-
mleao1 replied 9 years ago
Jonatas Roberto, você tem que colocar algum critério de parada, se não o seu código fica em loop infinito. Por exemplo, modificar a linha cin >> s para:
if (cin >> s) //leitura deu certo else break;
-
jroberto0 replied 9 years ago
Resolvido
Não entendi porque usando ponteiro deu TLE não deveria ser mais rápido com ponteiros? alguem pode dá um help?
-
crbonilha replied on Aug 22 2013
??? Eu te ajudo sempre que posso, e não sou o único...
Esse trecho do seu código acessa campos que não deveria:
for(j=0;j<=i;j++) { if(proc[j]=='R' && proc[j+1]=='W')...
Note que i é o tamanho da string. Você pode acessar as posições de 0 até i-1. O seu j corre até i (o que já ultrapassa o limite), e seu if compara a posição j+1 (ultrapassou em 2 o limite).
O que acha de experimentar outra abordagem? Acho que é mais simples do que a qual você está implementando. Cada W ocupa um ciclo, e você pode usar até P R's sequenciais. Uma busca já pode resolver.
Experimente esses casos:
RRW 2 RRW 1 WRR 2 WRR 1
-
crbonilha replied on Aug 22 2013
Em que exatamente você está tendo dificuldades? Você entendeu a lógica do exercício? Você só pode executar um R por vez, mas pode executar P W's de uma vez.
-
Joe101 replied on Aug 22 2013
ALGUÉM PODERIA ME DAR UMA AJUDA EM COMO RESOLVER ESSE PROBLEMA PQ TUDO QUE FAÇO RECEBO WRONG ANSWER OBRIGADO