Guest User

Untitled

a guest
Apr 25th, 2018
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.92 KB | None | 0 0
  1. using System;
  2.  
  3. /*
  4. Bruno Henrique Armanelli
  5. Problema Class Leader
  6. Lab de Computacao II - 2018
  7. */
  8.  
  9. public class No {
  10. public int id;
  11. public No Proximo = null;
  12. }
  13.  
  14. public class ListaCircular {
  15. private No No;
  16.  
  17. public ListaCircular() {
  18. this.No = null;
  19. }
  20.  
  21. public void add(int valor) {
  22. No node = new No();
  23. node.id = valor;
  24.  
  25. if(this.No == null) {
  26. node.Proximo = node;
  27. this.No = node;
  28. } else {
  29. node.Proximo = this.No.Proximo;
  30. this.No.Proximo = node;
  31. }
  32. }
  33.  
  34. public void remover(int valor) {
  35. while(No.Proximo.id != valor) {
  36. No = No.Proximo;
  37. }
  38. No.Proximo = No.Proximo.Proximo;
  39. }
  40.  
  41. public int executaMaratona(int m, int o) {
  42. while(No.id != m) {
  43. No = No.Proximo;
  44. }
  45.  
  46. while(No != No.Proximo) {
  47. for(int i = 0; i < (o - 1); i++) {
  48. No = No.Proximo;
  49. }
  50. No.Proximo = No.Proximo.Proximo; // Não utilizado remover
  51. }
  52. return No.id;
  53. }
  54. }
  55.  
  56.  
  57. public class Test {
  58. public static int resolve(int n, int m, int o) {
  59.  
  60. ListaCircular Alunos = new ListaCircular();
  61.  
  62. for(int i = n; i > 0; i--) {
  63. Alunos.add(i);
  64. }
  65.  
  66. int resultado = Alunos.executaMaratona(m, o);
  67.  
  68. return resultado;
  69. }
  70.  
  71. public static void Main() {
  72.  
  73. int resultado, repeticoes, n, m, o;
  74.  
  75. repeticoes = int.Parse(Console.ReadLine());
  76.  
  77. while (repeticoes > 0) {
  78. // Lê e faz split por espaços
  79. String linha = Console.ReadLine();
  80. string[] dados = linha.Split(' ');
  81.  
  82. n = int.Parse(dados[0]);
  83. m = int.Parse(dados[1]);
  84. o = int.Parse(dados[2]);
  85.  
  86. // Executa e imprime
  87. resultado = resolve(n, m, o);
  88. Console.WriteLine(resultado);
  89.  
  90. repeticoes--;
  91. }
  92. }
  93. }
Add Comment
Please, Sign In to add comment