Click Here to go back to the homepage.

Left and Right Solution:


#include <stdio.h>
#include <stdlib.h>

int main(){
    int houses, lastCurr = 0, l = 0;
    char input[200000];
    scanf("%d\n%s", &houses, input);
    char output [3000000];
    char* ptr = output;
    int i = 0;
    for(; i < houses; i++){
        if(input[i] == 'R'){
            if(l == 0){
                ptr += sprintf(ptr, "%d\n", i + 1);
            } else {
                int curr = i + 1;
                while (curr > lastCurr) {
                    ptr += sprintf(ptr, "%d\n", curr--);
                }
            }
            l = 0;
            lastCurr = i + 1;
        }
        else{
            l++;
        }
    }
    if(input[i-2] == 'L'){
        int curr = i;
        while (curr > lastCurr) {
            ptr += sprintf(ptr, "%d\n", curr--);
        }
    } else {
        ptr += sprintf(ptr, "%d", i);
    }
    printf("%s", output);
}