Skip to content

Commit e687d03

Browse files
committed
Solve 4732, 10799, and 2757
1 parent 1ad8744 commit e687d03

File tree

3 files changed

+93
-0
lines changed

3 files changed

+93
-0
lines changed

P10799.f95

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
program P10799
2+
implicit none
3+
character(len = 100000) :: parens
4+
integer :: stack, sum
5+
integer :: i
6+
7+
read *, parens
8+
sum = 0
9+
stack = 0
10+
do i = 1, len_trim(parens)
11+
if (parens(i:i) == '(') then
12+
stack = stack + 1
13+
else if (parens(i:i) == ')') then
14+
stack = stack - 1
15+
if (parens((i - 1):(i - 1)) == '(') then
16+
sum = sum + stack
17+
else
18+
sum = sum + 1
19+
end if
20+
end if
21+
end do
22+
write (*, '(I0)') sum
23+
end program P10799

P2757.rs

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
use std::io::{stdin, BufRead};
2+
3+
fn to_alpha(mut column: u32) -> String {
4+
let mut buffer = Vec::new();
5+
while column > 0 {
6+
column -= 1;
7+
buffer.push((column % 26) as u8 + b'A');
8+
column /= 26;
9+
}
10+
buffer.reverse();
11+
unsafe { String::from_utf8_unchecked(buffer) }
12+
}
13+
14+
fn main() {
15+
let stdin = stdin();
16+
let handle = stdin.lock();
17+
for line in handle.lines().flatten() {
18+
let mut splitter = line.trim_end().split(char::is_alphabetic).skip(1);
19+
let row = splitter.next().unwrap();
20+
let column = splitter.next().unwrap().parse::<u32>().unwrap();
21+
if row == "0" && column == 0 {
22+
break;
23+
} else {
24+
println!("{}{}", to_alpha(column), row);
25+
}
26+
}
27+
}

P4732.js

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
const readline = require('readline')
2+
const interface = readline.createInterface(process.stdin)
3+
4+
const keys = new Map([
5+
['A', 0],
6+
['A#', 1],
7+
['Bb', 1],
8+
['B', 2],
9+
['Cb', 2],
10+
['B#', 3],
11+
['C', 3],
12+
['C#', 4],
13+
['Db', 4],
14+
['D', 5],
15+
['D#', 6],
16+
['Eb', 6],
17+
['E', 7],
18+
['Fb', 7],
19+
['E#', 8],
20+
['F', 8],
21+
['F#', 9],
22+
['Gb', 9],
23+
['G', 10],
24+
['G#', 11],
25+
['Ab', 11],
26+
])
27+
28+
const keys_rev = 'A A# B C C# D D# E F F# G G#'.split(' ')
29+
30+
let line_num = 0
31+
let sequence
32+
interface.on('line', line => {
33+
if (line_num % 2 === 0) {
34+
if (line === '***') {
35+
process.exit(0)
36+
}
37+
sequence = line.split(' ').map(s => keys.get(s))
38+
} else {
39+
let key_move = Number(line)
40+
console.log(sequence.map(key => keys_rev[((key + key_move) % 12 + 12) % 12]).join(' '))
41+
}
42+
line_num += 1
43+
})

0 commit comments

Comments
 (0)