45 lines
1.1 KiB
Zig
45 lines
1.1 KiB
Zig
|
|
const std = @import("std");
|
||
|
|
|
||
|
|
const MAGIC_NUMBER = 100;
|
||
|
|
|
||
|
|
pub fn main() !void {
|
||
|
|
var stdin_buffer: [1024]u8 = undefined;
|
||
|
|
var stdin_reader = std.fs.File.stdin().reader(&stdin_buffer);
|
||
|
|
|
||
|
|
const stdin = &stdin_reader.interface;
|
||
|
|
|
||
|
|
var current: i32 = 50;
|
||
|
|
var task1: u32 = 0;
|
||
|
|
var task2: u32 = 0;
|
||
|
|
|
||
|
|
while (try stdin.takeDelimiter('\n')) |line| {
|
||
|
|
var num = try std.fmt.parseInt(i32, line[1..], 10);
|
||
|
|
switch (line[0]) {
|
||
|
|
'L' => {
|
||
|
|
while (num > 0) : (num -= 1) {
|
||
|
|
current = @mod(current - 1, MAGIC_NUMBER);
|
||
|
|
if (current == 0) {
|
||
|
|
task2 += 1;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
'R' => {
|
||
|
|
while (num > 0) : (num -= 1) {
|
||
|
|
current = @mod(current + 1, MAGIC_NUMBER);
|
||
|
|
if (current == 0) {
|
||
|
|
task2 += 1;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
},
|
||
|
|
else => unreachable,
|
||
|
|
}
|
||
|
|
|
||
|
|
if (current == 0) {
|
||
|
|
task1 += 1;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
std.debug.print("{d}\n", .{task1});
|
||
|
|
std.debug.print("{d}\n", .{task2});
|
||
|
|
}
|