アイヅ製薬ã§ã¯æ—¥ã€…化å¦ç‰©è³ªã®ç ”究ãŒãªã•ã‚Œã¦ã„ã¾ã™ã€‚ã„ã¾ç ”究をã—ã¦ã„ã‚‹ã®ã¯ã€$1$番ã‹ã‚‰$N$番ã®åˆ†åãŒå·¦ç«¯ã‹ã‚‰å³ç«¯ã¸ç›´ç·šçŠ¶ã«ãªã‚‰ã‚“ã æ§‹é€ ã‚’ã—ã¦ã„る化å¦ç‰©è³ªã€ã‚³ãƒ¼ãƒ‰ãƒãƒ¼ãƒ 「アルファã€ã§ã™ã€‚
アイヅ製薬ã®é–‹ç™ºã—ãŸæŠ€è¡“を使ãˆã°ã€ã‚¢ãƒ«ãƒ•ã‚¡ã‚’構æˆã™ã‚‹åˆ†åã®ä½ç½®ã‚’入れ替ãˆã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚入れ替ãˆã¯æ±ºã¾ã£ãŸæ‰‹é †ã§ã—ã‹è¡Œã†ã“ã¨ãŒã§ãã¾ã›ã‚“ãŒã€ãã®æ‰‹é †ã®é€”ä¸ã‹ã‚‰å§‹ã‚ã¦é€”ä¸ã§çµ‚ã‚ã‚‹ã“ã¨ã‚‚ã§ãã¾ã™ã€‚左端ã‹ã‚‰$a$番目ã¨$b$番目ã®åˆ†åを入れ替ãˆã‚‹æ“作を$(a,b)$ã¨æ›¸ãã¨ã—ã¾ã™ã€‚ãŸã¨ãˆã°ã€$N=5$ã§æ±ºã¾ã£ãŸæ‰‹é †ãŒ$(1,3),(2,5),(4,3),(1,5)$ã®ã¨ãã€$1$番目ã®æ“作$(1,3)$ã‹ã‚‰å§‹ã‚ã¦$3$番目ã®æ“作$(4,3)$ã§çµ‚ã‚ã‚‹ã“ã¨ã‚‚ã€$2$番目ã®æ“作$(2,5)$ã‹ã‚‰å§‹ã‚ã¦$4$番目ã®æ“作$(1,5)$ã§çµ‚ã‚ã‚‹ã“ã¨ã‚‚ã§ãã¾ã™ã€‚
ã‚ãªãŸã¯ã€ã‚¢ãƒ«ãƒ•ã‚¡ã®åˆ†åã®å…¥ã‚Œæ›¿ãˆæ‰‹é †ã®ä¸ã®é–‹å§‹ä½ç½®ã¨çµ‚了ä½ç½®ã‚’é¸ã‚“ã§ã‚·ãƒŸãƒ¥ãƒ¬ãƒ¼ã‚·ãƒ§ãƒ³ã‚’è¡Œã„ã€å…¥ã‚Œæ›¿ãˆå¾Œã®åˆ†åã®çŠ¶æ…‹ã‚’調ã¹ã‚‹ã“ã¨ã«ã—ã¾ã—ãŸã€‚
アルファã®åˆ†åã®å…¥ã‚Œæ›¿ãˆæ‰‹é †ãŒä¸Žãˆã‚‰ã‚Œã‚‹ã€‚シミュレーションを何度ã‹è¡Œã£ãŸã¨ãã€å„シミュレーションã§ã®åˆ†åã®ä½ç½®ã«ã¤ã„ã¦è³ªå•ã«ç”ãˆã‚‹ãƒ—ãƒã‚°ãƒ©ãƒ を作æˆã›ã‚ˆã€‚質å•ã¯æ¬¡ã®1.ã¾ãŸã¯2.ã®å½¢ã‚’ã—ã¦ã„る。
ãŸã ã—ã€å„シミュレーションã¯ã€ã‚¢ãƒ«ãƒ•ã‚¡ã®åˆæœŸçŠ¶æ…‹ï¼ˆ$1$番ã‹ã‚‰$N$番ã®åˆ†åãŒå·¦ç«¯ã‹ã‚‰å³ç«¯ã¸ç›´ç·šçŠ¶ã«ãªã‚‰ã‚“ã 状態)ã‹ã‚‰å§‹ã‚ã‚‹ã‚‚ã®ã¨ã™ã‚‹ã€‚
入力ã¯ä»¥ä¸‹ã®å½¢å¼ã§ä¸Žãˆã‚‰ã‚Œã‚‹ã€‚
$N$ $K$ $Q$ $a_1$ $b_1$ $a_2$ $b_2$ : $a_K$ $b_K$ $query_1$ $query_2$ : $query_Q$
1行目ã«ã‚¢ãƒ«ãƒ•ã‚¡ã‚’構æˆã™ã‚‹åˆ†åã®æ•°$N$ ($2 \leq N \leq 100,000$)ã€å…¥ã‚Œæ›¿ãˆæ‰‹é †ã®é•·ã•$K$ ($1 \leq K \leq 100,000$)ã€å…¥ã‚Œæ›¿ãˆå¾Œã®åˆ†åã®çŠ¶æ…‹ã‚’調ã¹ã‚‹å›žæ•°$Q$ ($1 \leq Q \leq 100,000$)ãŒä¸Žãˆã‚‰ã‚Œã‚‹ã€‚続ã$K$è¡Œã«å…¥ã‚Œæ›¿ãˆæ‰‹é †ã®ä¸ã®å„æ“作$a_i,b_i$ ($1 \leq a_i,b_i \leq N$, $a_i \ne b_i$)ãŒä¸Žãˆã‚‰ã‚Œã‚‹ã€‚$i$番目ã®æ“作ã¯ã€å·¦ç«¯ã‹ã‚‰$a_i$番目ã¨$b_i$番目ã®åˆ†åを入れ替ãˆã‚‹æ“作を表ã™ã€‚続ã$Q$è¡Œã«ã€å…¥ã‚Œæ›¿ãˆçµ‚了後ã®åˆ†åã®çŠ¶æ…‹ã‚’å°‹ãる質å•ãŒä¸Žãˆã‚‰ã‚Œã‚‹ã€‚å„$query_i$ã¯ä»¥ä¸‹ã®ã„ãšã‚Œã‹ã®å½¢å¼ã§ä¸Žãˆã‚‰ã‚Œã‚‹ã€‚
1 $s$ $t$ $x$
ã¾ãŸã¯
2 $s$ $t$ $x$
最åˆã®æ•°å—ãŒ1ã®å ´åˆã€å…¥ã‚Œæ›¿ãˆæ‰‹é †ã®ä¸ã®å…¥ã‚Œæ›¿ãˆã‚’$s$番ã‹ã‚‰$t$番($1 \leq s \leq t \leq K$)ã¾ã§è¡Œã£ãŸå¾Œã«ã€å·¦å´ã‹ã‚‰$x$番目($1 \leq x \leq N$)ã®åˆ†åã®ç•ªå·ãŒä½•ç•ªã‹å°‹ãる質å•ã‚’表ã™ã€‚最åˆã®æ•°å—ãŒ2ã®å ´åˆã€å…¥ã‚Œæ›¿ãˆæ‰‹é †ã®ä¸ã®å…¥ã‚Œæ›¿ãˆã‚’$s$番ã‹ã‚‰$t$番($1 \leq s \leq t \leq K$)ã¾ã§è¡Œã£ãŸå¾Œã«ã€$x$番($1 \leq x \leq N$)ã®åˆ†åãŒå·¦ã‹ã‚‰æ•°ãˆã¦ä½•ç•ªç›®ã«ã‚ã‚‹ã‹å°‹ãる質å•ã‚’表ã™ã€‚
å„質å•ã«å¯¾ã—ã¦ã€ç”ãˆã‚’1行ã«å‡ºåŠ›ã™ã‚‹ã€‚
6 5 8 1 3 2 5 3 4 2 4 2 5 1 1 5 1 1 1 5 2 1 1 5 3 1 1 5 4 1 1 5 5 1 1 5 6 2 3 4 2 1 1 1 1
3 2 4 5 1 6 4 3
入れ替ãˆæ‰‹é †ã¯$(1,3),(2,5),(3,4),(2,4),(2,5)$ã§ã‚る。
$1$番目ã‹ã‚‰$6$番目ã®è³ªå•ã§ã¯ã€æ‰‹é †ã®$1$番目($s=1$)ã‹ã‚‰$5$番目($t=5$)ã¾ã§ã™ã¹ã¦è¡Œã£ãŸå ´åˆãªã®ã§ã€å…¥ã‚Œæ›¿ãˆå¾Œã®çŠ¶æ…‹ã¯ã™ã¹ã¦å…±é€šã§ä»¥ä¸‹ã®ã‚ˆã†ã«ãªã‚‹ã€‚
åˆæœŸçŠ¶æ…‹ã€€1 2 3 4 5 6
$(1,3)$ã®å¾Œ 3 2 1 4 5 6
$(2,5)$ã®å¾Œ 3 5 1 4 2 6
$(3,4)$ã®å¾Œ 3 5 4 1 2 6
$(2,4)$ã®å¾Œ 3 1 4 5 2 6
$(2,5)$ã®å¾Œ 3 2 4 5 1 6
$7$番目ã®è³ªå•ã§ã¯$s=3,t=4$ãªã®ã§ã€å…¥ã‚Œæ›¿ãˆå¾Œã®çŠ¶æ…‹ã¯ä»¥ä¸‹ã®ã‚ˆã†ã«ãªã‚‹ã€‚分å番å·$2$番ã¯å·¦ã‹ã‚‰æ•°ãˆã¦$4$番目ã«ã‚ã‚‹ã®ã§ã€ç”ãˆã¯4ã«ãªã‚‹ã€‚
åˆæœŸçŠ¶æ…‹ã€€1 2 3 4 5
$(3,4)$ã®å¾Œ 1 2 4 3 5
$(2,4)$ã®å¾Œ 1 3 4 2 5
$8$番目ã®è³ªå•ã§ã¯$s=1,t=1$ãªã®ã§ã€å…¥ã‚Œæ›¿ãˆå¾Œã®çŠ¶æ…‹ã¯ä»¥ä¸‹ã®ã‚ˆã†ã«ãªã‚‹ã€‚
åˆæœŸçŠ¶æ…‹ã€€1 2 3 4 5
$(1,3)$ã®å¾Œ 3 2 1 4 5