Guest User

Untitled

a guest
Jan 4th, 2026
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.45 KB | None | 0 0
  1.  
  2. fn main(){
  3. let input=std::fs::read_to_string("code.txt").unwrap();
  4. let part2=true;
  5. let mut rot_left=true;
  6. let mut state=50;
  7. let mut result;
  8. let mut output:i32=0;
  9.  
  10. for val in input.lines(){
  11. let (letter,number)=val.split_at(1);
  12. let number:i32=number.parse().unwrap();
  13. rot_left=letter=="L" ;
  14.  
  15. if part2==false{
  16. result=counter(number,state,rot_left);
  17. state=result;
  18. if result==0{
  19. output=output+1;
  20. }
  21. }
  22. if part2==true{
  23. result=counter_part2(number, &mut state, rot_left);
  24. output=output+result;
  25.  
  26. }
  27.  
  28.  
  29. }
  30.  
  31. println!("output:{}",output);
  32.  
  33.  
  34.  
  35.  
  36. }
  37. fn counter(val:i32,state: i32,rot_left:bool)->i32{
  38. let mut result=if rot_left==true{
  39. (state-val)
  40. }
  41. else{
  42. (state+val)
  43. };
  44.  
  45.  
  46. result =result.rem_euclid(100);
  47.  
  48. return result;
  49. }
  50.  
  51. fn counter_part2(val:i32,state:&mut i32,rot_left:bool)->i32{
  52. let mut counter=0;
  53. let mut result=if rot_left==true{
  54. *state-val
  55. }
  56. else{
  57. *state+val
  58. };
  59.  
  60. let old_state=*state;
  61.  
  62. counter=(old_state.div_euclid(100)-result.div_euclid(100)).abs();
  63.  
  64. if result.div_euclid(100)==old_state.div_euclid(100) && result==0{
  65. counter=counter+1;
  66. }
  67.  
  68. *state=result.rem_euclid(100);
  69. println!("{}",counter);
  70. return counter;
  71. }
Advertisement
Add Comment
Please, Sign In to add comment