CSES - Pitkä reitti

Robotti liikkuu kuten viikon aiemmassa tehtävässä, mutta toistaa samaa liikesarjaa kk kertaa peräkkäin. Monessako eri ruudussa robotti käy yhteensä?

Voit olettaa, että liikesarjassa on enintään 100100 komentoa ja kk on välillä 11091 \dots 10^9.

Python

Toteuta tiedostoon longroute.py funktio count, joka ilmoittaa eri ruutujen määrän, kun sille annetaan robotin liikesarja ja toistojen määrä.

def count(s,k):
    # TODO

if __name__ == "__main__":
    print(count("UR", 100)) # 201
    print(count("UD", 100)) # 2
    print(count("UURRDDL", 500)) # 1506
    print(count("L", 10**9)) # 1000000001
    print(count("DLUR", 10**9)) # 4

Java

Toteuta tiedostoon LongRoute.java metodi count, joka ilmoittaa eri ruutujen määrän, kun sille annetaan robotin liikesarja ja toistojen määrä.

public class LongRoute {
    public long count(String s, int k) {
        // TODO
    }
    
    public static void main(String[] args) {
        LongRoute l = new LongRoute();
        System.out.println(l.count("UR", 100)); // 201
        System.out.println(l.count("UD", 100)); // 2
        System.out.println(l.count("UURRDDL", 500)); // 1506
        System.out.println(l.count("L", 1000000000)); // 1000000001
        System.out.println(l.count("DLUR", 1000000000)); // 4
    }
}