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);
}