fork download
  1. // Yukkkkkkkk Simple One :----------------
  2. object Main extends App {
  3. var m=Console.readInt
  4. var st:String=Console.readLine
  5. var m2=st.split(" ").map( _.toInt )
  6. var m0=Console.readInt
  7. var m1:Array[String]=new Array[String](m0)
  8. for(i<-0 to m0-1){
  9. m1(i)=Console.readLine
  10. }
  11. for(i<-0 to m0-1){
  12. var p=m1(i).substring(0,1)
  13. var k=m1(i).substring(2)
  14. var m5=k.split(" ").map( _.toInt )
  15. if(p=="Q"){
  16. println(lcm(lcmofarray(m2,m5(0),m5(1)),m2(m5(1))))
  17. }
  18. if(p=="U"){
  19. m2(m5(0))=m2(m5(0))*m5(1)
  20. }
  21.  
  22. }
  23. def lcmofarray(arr:Array[Int], start:Int, end:Int):Int={
  24. if ((end-start)==1) return lcm(arr(start),arr(end-1));
  25. else return (lcm (arr(start), lcmofarray(arr, start+1, end)));
  26. }
  27. def lcm(a:Int,b:Int):Int={
  28. return ((a*b)/gcd(a,b));
  29. }
  30.  
  31. def gcd(a:Int,b:Int):Int={
  32. if (a<b) return gcd(b,a);
  33. if (a%b==0) return b;
  34. else return gcd(a, a%b);
  35. }
  36.  
  37. }
Success #stdin #stdout 0.41s 382080KB
stdin
5
2 5 6 1 9
7
Q 0 4
U 1 2
Q 0 2
Q 3 4
Q 2 4
U 3 8
Q 2 3

stdout
90
30
9
18
24