๋ํ์ด๋ ๋ฐ๊ตฌ๋๋ฅผ ์ด N๊ฐ ๊ฐ์ง๊ณ ์๊ณ , ๊ฐ๊ฐ์ ๋ฐ๊ตฌ๋์๋ 1๋ฒ๋ถํฐ N๋ฒ๊น์ง ๋ฒํธ๊ฐ ์์๋๋ก ์ ํ์ ธ ์๋ค. ๋ฐ๊ตฌ๋๋ ์ผ๋ ฌ๋ก ๋์ฌ์ ธ ์๊ณ , ๊ฐ์ฅ ์ผ์ชฝ ๋ฐ๊ตฌ๋๋ฅผ 1๋ฒ์งธ ๋ฐ๊ตฌ๋, ๊ทธ ๋ค์ ๋ฐ๊ตฌ๋๋ฅผ 2๋ฒ์งธ ๋ฐ๊ตฌ๋, ..., ๊ฐ์ฅ ์ค๋ฅธ์ชฝ ๋ฐ๊ตฌ๋๋ฅผ N๋ฒ์งธ ๋ฐ๊ตฌ๋๋ผ๊ณ ๋ถ๋ฅธ๋ค.
๋ํ์ด๋ ์์ผ๋ก M๋ฒ ๋ฐ๊ตฌ๋์ ์์๋ฅผ ์ญ์์ผ๋ก ๋ง๋ค๋ ค๊ณ ํ๋ค. ๋ํ์ด๋ ํ ๋ฒ ์์๋ฅผ ์ญ์์ผ๋ก ๋ฐ๊ฟ ๋, ์์๋ฅผ ์ญ์์ผ๋ก ๋ง๋ค ๋ฒ์๋ฅผ ์ ํ๊ณ , ๊ทธ ๋ฒ์์ ๋ค์ด์๋ ๋ฐ๊ตฌ๋์ ์์๋ฅผ ์ญ์์ผ๋ก ๋ง๋ ๋ค.
๋ฐ๊ตฌ๋์ ์์๋ฅผ ์ด๋ป๊ฒ ๋ฐ๊ฟ์ง ์ฃผ์ด์ก์ ๋, M๋ฒ ๋ฐ๊ตฌ๋์ ์์๋ฅผ ์ญ์์ผ๋ก ๋ง๋ ๋ค์, ๋ฐ๊ตฌ๋์ ์ ํ์๋ ๋ฒํธ๋ฅผ ๊ฐ์ฅ ์ผ์ชฝ ๋ฐ๊ตฌ๋๋ถํฐ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ฒซ์งธ ์ค์ N (1 โค N โค 100)๊ณผ M (1 โค M โค 100)์ด ์ฃผ์ด์ง๋ค.
๋์งธ ์ค๋ถํฐ M๊ฐ์ ์ค์๋ ๋ฐ๊ตฌ๋์ ์์๋ฅผ ์ญ์์ผ๋ก ๋ง๋๋ ๋ฐฉ๋ฒ์ด ์ฃผ์ด์ง๋ค. ๋ฐฉ๋ฒ์ i j๋ก ๋ํ๋ด๊ณ , ์ผ์ชฝ์ผ๋ก๋ถํฐ i๋ฒ์งธ ๋ฐ๊ตฌ๋๋ถํฐ j๋ฒ์งธ ๋ฐ๊ตฌ๋์ ์์๋ฅผ ์ญ์์ผ๋ก ๋ง๋ ๋ค๋ ๋ป์ด๋ค. (1 โค i โค j โค N)
๋ํ์ด๋ ์ ๋ ฅ์ผ๋ก ์ฃผ์ด์ง ์์๋๋ก ๋ฐ๊ตฌ๋์ ์์๋ฅผ ๋ฐ๊พผ๋ค.
๋ชจ๋ ์์๋ฅผ ๋ฐ๊พผ ๋ค์์, ๊ฐ์ฅ ์ผ์ชฝ์ ์๋ ๋ฐ๊ตฌ๋๋ถํฐ ๋ฐ๊ตฌ๋์ ์ ํ์๋ ์์๋ฅผ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถํด ์ถ๋ ฅํ๋ค.
์์ ์ ๋ ฅ 1
5 4
1 2
3 4
1 4
2 2
์์ ์ถ๋ ฅ 1
const input = require('fs').readFileSync('/dev/stdin').toString().trim().split('\n')
const [N, M] = input.shift().split(" ").map(a => Number(a))
const result = Array.from({length: N}, (_, i) => i + 1)
input.forEach(item => {
const [from, to] = item.split(" ").map(a => Number(a))
result.splice(from - 1, to - from + 1, ...result.slice(from - 1, to).reverse())
})
console.log(result.join(" "))