ããã«ã¡ã¯ã髿 ¡ 2 幎çã® E869120 ã§ãã
ç§ã¯ç«¶æããã°ã©ãã³ã°ãè¶£å³ã§ãAtCoder ãæ¥æ¬æ
å ±ãªãªã³ããã¯ãªã©ã®åçš®ã³ã³ãã¹ãã«åºå ŽããŠãããŸããã¡ãªã¿ã«ã2020 幎 2 æ 19 æ¥çŸåšãAtCoder ã§ã¯èµ€ïŒã¬ããã³ãŒããŒïŒã§ãã
ä»åã¯ãç«¶æããã°ã©ãã³ã°äžéã®ããã®ã¬ã€ãã©ã€ã³ãèšããŸããåçŽç·šã§ã¯æªçµéšè
ãç«¶ãããå§ãããšãããããµããŒãããŸãã®ã§ãæ¯éãèªã¿ãã ããã
ãã·ãªãŒãºã
- ã¬ããã³ãŒããŒãæãããç«¶ããã»AtCoderäžéã®ã¬ã€ãã©ã€ã³ãåçŽç·šïŒç«¶ãããå§ãããããâæ¬èšäº
- ã¬ããã³ãŒããŒãæãããç«¶ããã»AtCoderäžéã®ã¬ã€ãã©ã€ã³ãäžçŽç·šïŒç®æãæ°Žè²ã³ãŒããŒïŒã
- ã¬ããã³ãŒããŒãæãããç«¶ããã»AtCoderäžéã®ã¬ã€ãã©ã€ã³ãäžçŽç·šïŒç®æãã¬ããã³ãŒããŒïŒã
0. ã¯ããã«
çãããç«¶æããã°ã©ãã³ã° (ç«¶ãã) ããåç¥ã§ããããã
è¿å¹Žãç«¶ããã®ååšæãæ¥ã«æ¥ã«é«ãŸã£ãŠããŠãããæè¿ã§ã¯ IT æ¥çã»å€§åŠçã»äžé«çã®éã§ãåºãŸã£ãŠããŸãã
ãã®äžã§ãç¹ã«ãAtCoder æ ªåŒäŒç€Ÿ1ãã®ååšæãé«ãŸã£ãŠããŸããAtCoder ã¯æ¥æ¬çºã®ããã°ã©ãã³ã°ã³ã³ãã¹ãéå¶äŒç€Ÿãšã㊠2012 幎 6 æã«èšç«ãããŠä»¥æ¥ã幎ã
掻åã®å¹
ãåºããŠãããŸããã2017 幎 9 ææç¹ã§ã®åå è
æ°ã¯ 37,000 人ã§ãããã2020 幎 6 ææç¹ã§ã¯ 206,000 人ãšãçŽ 3 幎ã®éã« 6 åã«ãªããªã©ãæè¿æ¥äžæäžã®äŒç€Ÿã§ãã

æè¿ã§ã¯ãAtCoderJobs ãšãããããAtCoder ã§ã®ã³ã³ãã¹ãæçžŸã§å°±è·ãæå©ã«ãªããµãŒãã¹ã話é¡ã«ãªã£ãŠãããç«¶ããã®å®åãäžããããšãçŽæ¥å°±è·ã«åœ¹ç«ã€ããã«ãªã£ãŠããŸãã
ããããªããã**ãç«¶ããã§ã©ããã£ãŠäžéããã°è¯ãã®ãããããªãã**ãšæãæ©ãã§ããæ¹ã¯ãšãŠãå€ããšæããŸãããã®æ©ã¿ããå®å垯ããšã«ç°ãªãã
- æåã«äœãããã°è¯ãã®ãæ©ãã§ããç«¶ããæªçµéšè ããã
- ç«¶ããæçžŸäžäœã«é£ã蟌ãããã«ã¯äœãããã°è¯ãã®ãæ©ãã§ãã人ããã
- éšæŽ»ã瀟å ãªã©ã§ãã©ãããç«¶ããã®æãæ¹ãããã°è¯ãã®ãæ©ãã§ãã人ããã
ãšæããŸããããã§æ¬èšäºã§ã¯ã
ç«¶æããã°ã©ãã³ã°ã§å®åãäžããã«ã¯ã©ãããããšãåŠã¹ã°è¯ãã®ããã©ãããç·Žç¿ãããã°è¯ãã®ãã®ã¬ã€ãã©ã€ã³ãã¬ãã«å¥ã«ç€ºããäžéã«åœ¹ç«ãŠãŠããã
ããšãæå€§ã®ç®æšã«ããŸãïŒ

ç«¶ãããã¯ãããŠç¥ã£ããšããæ¹ãž
(2020.2.28 远èš)
æ¬èšäºã§ãç«¶æããã°ã©ãã³ã°ããåããŠç¥ã£ããšããæ¹ããããšæããŸããåçŽç·šã§ã¯ã
- ãç«¶æããã°ã©ãã³ã°ããã©ããããã®ãªã®ãã
- åŠç¿ããŠããããšã«ãã£ãŠãã©ãããã¡ãªãããããã®ãã
- ã©ã®ããã«ããŠç«¶æããã°ã©ãã³ã°ãå§ããããã®ã
ãã玹ä»ããŠãããŸãã®ã§ããå®å¿ãã ãããæ¬ææã§ã¯ãä»®ã«ããã°ã©ãã³ã°æªçµéšè ã§ãã£ãŠããç«¶æããã°ã©ãã³ã°ãå§ããããããããµããŒãããŠãããŸãã
ã¢ã«ãŽãªãºã æ¬ãåºçïŒïŒ2021/12/25ïŒ
(2022.2.5 远èš)
ç§ã¯ç«¶æããã°ã©ãã³ã°ã§å¿
èŠãªã¢ã«ãŽãªãºã ãæ°åŠã«é¢ããèšäºãããããŸã§ Qiita ã«å·çããŠããŸããããããã®ãããã¯ããŸãšããæžç±ãåºçããŸããã®ã§ããã²èªãã§ã¿ãŠãã ããã
ãŸãããã¢ã«ãŽãªãºã Ãæ°åŠãã®æ¬ã®æŒç¿ã AtCoder ã§é²ããç®çã§ãã®èšäºãèŠããšããæ¹ããããšæããŸãããã®å Žåã¯æ¬èšäºã®ã1-3. æ©éç«¶ãããå§ããŠã¿ãããã« AtCoder ãžã®ç»é²æ¹æ³ãªã©ãèšãããŠããŸãã®ã§ããã¡ããã芧ãã ããã

ç®æ¬¡
åçŽç·š
| ç« | ã¿ã€ãã« | åè |
|---|---|---|
| 0. | ã¯ããã« | |
| 1-1. | ç«¶ãããšã¯äœã | ãããããµããŒãããŠãããŸã |
| 1-2. | ç«¶ããã® 6 ã€ã®é¢çœã | ãç«¶ããã£ãŠãé¢çœãããäŒããŠãããŸã |
| 1-3. | æ©éç«¶ãããå§ããŠã¿ãã | |
| 1-4. | AtCoder ã®ã¬ãŒãã£ã³ã°ãšã¯ | |
| 1-5. | ãè¶è²ã³ãŒããŒãã§èŠæ±ããã 4 ã€ã®ããš | |
| 1-6. | ãè¶è²ã³ãŒããŒãã«ãªãããã®ã¬ã€ãã©ã€ã³ | åçŽç·šã®ã¡ã€ã³ã§ã |
| 1-7. | TipsïŒ AtCoder ã®éå»åãè§£ãã䟿å©ãªãµã€ã | |
| 1-8. | ããŸãïŒç«¶ããã«ããã C++ ã®ããã |
äžçŽç·š
| ç« | ã¿ã€ãã« | åè |
|---|---|---|
| 2-1. | ãæ°Žè²ã³ãŒããŒãã§èŠæ±ããã 4 ã€ã®ããš | |
| 2-2. | ãæ°Žè²ã³ãŒããŒãã«ãªãããã®ã¬ã€ãã©ã€ã³ | äžçŽç·šã®ã¡ã€ã³ã§ã |
| 2-3. | åéå¥ãåäžçŽè ãè§£ãã¹ãéå»åç²Ÿéž 100 å | ãã® 100 åè§£ãã°å®åäžãããšæããŸã |
| 2-4. | ãæ°Žè²ã³ãŒããŒããç®æã人ã®ããã® Tips 5 å |
äžçŽç·š
| ç« | ã¿ã€ãã« | åè |
|---|---|---|
| 3-1. | ãé»è²ã³ãŒããŒãã§èŠæ±ããã 6 ã€ã®ããš | |
| 3-2. | ãé»è²ã³ãŒããŒãã«ãªãããã®ã¬ã€ãã©ã€ã³ | äžçŽç·šã®ã¡ã€ã³ã§ã |
| 3-3. | åéå¥ãäžçŽè ãè§£ãã¹ãéå»åç²Ÿéž 100 + 50 å | ãã® 150 åã§å®åäžãããŸã |
| 3-4. | ãç«¶ããå žå 90 åãã®ããã | æ°ãã«èªçããææã§ã |
| 3-5. | ãé»è²ã³ãŒããŒããç®æã人ã®ããã® Tips 4 å | |
| 4. | ãæ©è²ã³ãŒããŒãã«ãªãããã«ã¯äœãããã°è¯ããïŒ | æ©è²ãŸã§ãµããŒãããŸã |
| 5. | ãæ©è²ã³ãŒããŒãã®å ãïœã¬ãã³ã³ç«¶æãšããŠã®ç«¶ããã®ã¯ããŸãïœ | |
| 6. | ãããã« |
1-1. ç«¶ãããšã¯äœã
ç«¶ãããšã¯ã以äžã®ãããªãã®ã§ãã
ç«¶æããã°ã©ãã³ã°ã§ã¯ãåå è å šå¡ã«åäžã®èª²é¡ãåºé¡ãããããæ©ãäžããããèŠæ±ãæºè¶³ããããã°ã©ã ãæ£ç¢ºã«èšè¿°ããããšãç«¶ãã (Wikipedia ããåŒçš)
ã€ãŸããããã°ã©ãã³ã°ã§è§£ããåé¡ãäœåãåºãããŠãããããã®åé¡ã«ã€ããŠããã®åé¡ãè§£ãããäœç¹ç²åŸã§ãããããšãããã®ã決ãŸã£ãŠããŠã2 æéãªã©ãšãã£ãå¶éæéå
ã§ã§ããã ãå€ãã®åŸç¹ãç²åŸããããšãç®çã®ç«¶æã§ããïŒã©ããªåé¡ãåºããããã«ã€ããŠã¯åŸè¿°ã以äžã®ç»åã¯ã³ã³ãã¹ãã®äŸã§ããïŒ

ç«¶ããã®ç¹åŸŽïŒèªåæ¡ç¹
ç«¶æããã°ã©ãã³ã°ã®æå€§ã®ç¹åŸŽã®äžã€ãšããŠãããœãŒã¹ã³ãŒããåºãããããã«æ¡ç¹ãããããšããããšãæããããŸããã€ãŸãããœãŒã¹ã³ãŒããã³ã³ãã¹ããµã€ãã«æåºãããšãéåžž 1 å以å ã«æ£è§£ãäžæ£è§£ãããããŸãã
ãããç«¶æããã°ã©ãã³ã°ã®é¢çœãã®äžã€ã§ãæ£èª€ãããã«ãããã ãã§ãªãããªã¢ã«ã¿ã€ã ã§é äœè¡šãæŽæ°ãããŸããããããšãŠã楜ããã®ã§ãã

ã©ããªåé¡ãåºããããïŒïŒïŒ
ããŠãç«¶æããã°ã©ãã³ã°ã§ã¯ã©ã®ãããªåé¡ãåºãããã®ã§ããããããŸãã¯ç°¡åãªäŸãã玹ä»ããŸãã
æŽæ° $A$ ãš $B$ ãäžããããŸãã
ãã®ãšãã瞊 $A$ ã»ã³ããæšª $B$ ã»ã³ãã®é·æ¹åœ¢ã®åšã®é·ããæŽæ°ã§åºåããŠãã ããã
ãã¹ãããŒã¿ã®å¶çŽïŒ$1 \leq A, B \leq 100$
ãã®ãããªåé¡ã«ã€ããŠãäœåè åŽãçšæããå šãŠã®ãã¹ãããŒã¿ïŒããã§ã¯ $(A, B)$ ã®çµïŒã«å¯ŸããŠæ£è§£ãããããªã³ãŒããæžãã°æ£è§£ã§ãã以äžã®äŸã®ããã«ã1 ã±ãŒã¹ã§ãééã£ãåºåãããå Žåããã®æåºã¯**äžæ£è§£**ãšãªããŸãã
| ãã¹ãã±ãŒã¹çªå· | #1 | #2 | #3 | #4 | #5 |
|---|---|---|---|---|---|
| $(A, B)$ | (4, 5) | (1, 9) | (6, 7) | (31, 27) | (100, 100) |
| æ³å®è§£ | 18 | 20 | 26 | 116 | 400 |
| ããªãã®åºå | 18 | 20 | 26 | 112 | 400 |
| æ£èª€ | ã | ã | ã | à | ã |
ãã®ããã«ãç«¶æããã°ã©ãã³ã°ã¯ã³ãŒãã£ã³ã°ã®æ£ç¢ºæ§ãåãããã³ã³ãã¹ãã§ãã
ã©ããªåé¡ãåºããããïŒïŒïŒ
ç«¶ããã¯æ£ç¢ºæ§ã ãã§ã¯ãããŸãããäŸãã°ã以äžã®åé¡ãèããŠã¿ãŠãã ããã
$N$ æã®ã«ãŒããäžåã«äžŠã¹ãããŠããŸãã
å·Šãã $i$ çªç®ã®ã«ãŒãã«ã¯ãæŽæ° $A_i$ ãæžãããŠããŸãã
ããªã㯠$N$ æã®ã«ãŒãã®äžãã $2$ æåæã«éžã³ãåãããšãã§ããŸããåã£ã $2$ æã«æžãããæŽæ°ã®åèšãã¡ããã© $101$ ãšãªããããªãã«ãŒãã®éžã³æ¹ã®éãæ°ãæ±ããŠãã ããã
ãã¹ãããŒã¿ã®å¶çŽïŒ$1 \leq N \leq 10^{6}, 1 \leq A_i \leq 10^{9}$
äžçªæåã«èããããè§£æ³ã¯ã以äžã®ããã«ãäœæç®ãšäœæç®ãéžã¶ãå šæ¢çŽ¢ããããšããæ¹æ³ã ãšæããŸããã€ãŸãã$1 \leq i < j \leq N$ ãæºãããã¹ãŠã® $(i, j)$ ã®çµãå šæ¢çŽ¢ãã$A_i + A_j = 101$ ãšãªãéãæ°ãæ°ãäžãããšããæ¹æ³ã§ãã
ãããããã®è§£æ³ã®å Žåã$N^2$ åçšåºŠã®ã«ãŒããåãå¿ èŠããããŸãã $N \leq 10^{6}$ ãªã®ã§ãæå€§ $10^{12}$ åçšåºŠã®ã«ãŒããåãå¿ èŠããããŸããããããç«¶æããã°ã©ãã³ã°ã«ãããŠãããã $10^{8}$ ïœ $10^{9}$ åãè¶ ããåæ°ã®ã«ãŒããããå Žåãå®è¡æéè¶ é (TLE) ãšãªãã1 ã±ãŒã¹ã§ã TLE ãèµ·ãããšäžæ£è§£ãšãªã£ãŠããŸããŸãã2
ãã®ãããããå¹ççãªã¢ã«ãŽãªãºã ãå®è£ ããããšãæ±ããããŸããäŸãã°ãæ¬åé¡ã§ããã°ã以äžã®ãããªè§£æ³ã䜿ããšãé«ã $N$ åçšåºŠã®ã«ãŒãã§ããã°ã©ã ã®å®è¡ãçµãããŸãã
- $A_i \geq 101$ ã®ã«ãŒãã¯ãã¹ãŠç¡èŠããã
- $A_i = 1, A_i = 2, ..., A_i = 100$ ã®ã«ãŒãã®ææ°ãæ°ããããããã $c_1, c_2, ..., c_{100}$ ãšããã
- ãã®ãšãã$(c_1 \times c_{100}) + (c_2 \times c_{99}) + (c_3 \times c_{98}) + ... + (c_{50} \times c_{51})$ ãçãã§ããã
äžå¿ãC++ ã§ã®å®è£
äŸãèŒããŠãããŸãã
â» å¿
ãèªãŸãªããŠããæ¬èšäºãèªããæ§æã«ãªã£ãŠãããŸããã(2/20 01:28 AM. äžéšä¿®æ£ããŸãã)
# include <iostream>
# include <cstdio>
using namespace std;
long long N, A[1000009];
long long cnt[109];
int main() {
scanf("%lld", &N);
for (int i = 1; i <= N; i++) {
scanf("%lld", &A[i]);
if (A[i] <= 100) cnt[A[i]]++;
}
long long Answer = 0;
for (int i = 1; i <= 50; i++) Answer += cnt[i] * cnt[101 - i];
cout << Answer << endl;
return 0;
}
ãã®ããã«ãã³ãŒãã£ã³ã°ã®æ£ç¢ºæ§ã ãã§ãªããçŸå®çãªå®è¡æéã«éã«åããããããªããã°ã©ã ã®æžãæ¹ïŒã¢ã«ãŽãªãºã ïŒãèãããšããã®ããç«¶æããã°ã©ãã³ã°ã®æ¬è³ªã§ããç«¶ããã®äžçã¯åºããä»å説æããåé¡ã¯ãŸã ç°¡åãªæ¹ã§ããç«¶ããã«ã¯ããã£ãšè§£æ³ãé£ããåé¡ã¯ãããããããŸãã3
1-2. ç«¶ããã® 6 ã€ã®é¢çœã
ç«¶æããã°ã©ãã³ã°ã«ã€ããŠç¥ã£ãŠããã ãããšããã§ãç«¶ãããåŠäœã«é¢çœããã玹ä»ããŸããç«¶ãããšããã®ã¯ãå®ã¯ãšãŠã€ããªãåŠã³ãããããããšãŠã€ããªãåºãããšãŠã€ããªãé¢çœãããšãªã®ã§ãã
1-2-1. ããã°ã©ãã³ã°ã¹ãã«ãåäžããïŒ
ç«¶æããã°ã©ãã³ã°ã§ã¯ãåœç¶ããã°ã©ã ãæ©ãæ£ç¢ºã«æžãããšãæ±ããããŸããç«¶ããããããšãã³ã³ãã¹ãã«åºããéå»åãè§£ãããããããšã§æ²¢å±±ã®ã³ãŒããæžãã®ã§ãã³ãŒãã£ã³ã°ã«æ £ããã¹ãã«ã¢ããã«çŽæ¥ç¹ãããŸãã
å®éã«ãç«¶æããã°ã©ããŒã¯ããšãŠã€ããªãéãã³ãŒãã£ã³ã°ããèœåãæã£ãŠããŸããäŸãã°ã1-1. ç¯ã§ç޹ä»ãã 2 ã€ç®ã®åé¡ãè§£ãããã°ã©ã ã 2 åçšåºŠã§æžãã人ãå€ãã§ãã
ãŸããåŸã§ç޹ä»ããŸãããç«¶ããã§ã¯ C++ ãšããèšèªãã¡ãžã£ãŒã§ãããã®ãããC++ æªçµéšã®äººã«ãšã£ãŠã¯ãC++ ãšããããã°ã©ãã³ã°èšèªãæ°ãã«åŠç¿ããè¯ãæ©äŒã«ããªãã®ã§ããïŒãã¡ãã C++ 以å€ã®èšèªã§åå ããŠãæ§ããŸããïŒ
1-2-2. ã¢ã«ãŽãªãºã ãåŠã¹ãïŒ
å çšè¿°ã¹ãããã«ãç«¶æããã°ã©ãã³ã°ã§ã¯
- ããã ã³ãŒããéãæ£ç¢ºã«æžãèœåããã ãã§ãªãã
- ãå®è¡æéã«éã«åããããªãå¹ççã«åãããã°ã©ã ãæžãã
èœåãæ±ããããŸããããã§ãæ§ã ãªã¢ã«ãŽãªãºã ãåŠç¿ãããšãå¹ççã«åãããã°ã©ã ãæžãããããªããŸããç«¶æããã°ã©ãã³ã°ã¯ãã¢ã«ãŽãªãºã ãåŠç¿ã»åŸ©ç¿ã»åŠã³çŽãããè¯ãæ©äŒã«ããªãã®ã§ãã
1-2-3. æ°åŠçèå¯åãåäžããïŒ
äžè¬ã«ãAtCoder ã®åé¡ãããããè§£ããŠãããšãæ°åŠçèå¯åã»è«ççèå¯åãåäžããŸããã€ãŸãæ°çããºã«ã®ãããªåé¡ãç°¡åã«è§£ããããã«ãªãã®ã§ãã(2/20 00:57 AMã衚èšãäžéšä¿®æ£)
ã§ã¯äœæ AtCoder ãªã©ã®ã³ãŒãã£ã³ã°ã³ã³ãã¹ãã§ãæ°åŠçèå¯åã磚ããã®ã§ããããïŒããã®çãã¯ç«¶ããã§åºé¡ãããŠããåé¡ã«ãããŸããç«¶ããã§ã¯ã
- ã¢ã«ãŽãªãºã ã«ãã£ãŠèšç®åæ°ãå°ãªãã§ããåé¡ãã ãã§ãªãã
- æ°åŠçèå¯ã«ãã£ãŠèšç®åæ°ãå°ãªãã§ããåé¡
ãå€ãåºé¡ãããããã§ãã
1-2-4. ãªã¢ã«ã¿ã€ã ã§æŠããïŒ
å çšè¿°ã¹ãããã«ãç«¶æããã°ã©ãã³ã°ã§ã¯èªåæ¡ç¹ã®ã·ã¹ãã ã䜿ãããŠãããããé äœè¡šããªã¢ã«ã¿ã€ã ã§æŽæ°ãããŸãããã®éãäŸãã° AtCoder ãšããæ¥æ¬æå€§æã®ã³ã³ãã¹ããµã€ãã®å Žåãäžçã®10000人以äž4ã®åå è ãåæã«æŠã£ãŠããŸãã
ã§ãã®ã§ãã³ãŒãã£ã³ã°ãé«ããããã ãã§ãªãããããã²ãŒã ïŒãããã¯ç«¶æïŒãšããŠãå忥œãããã®ã§ãã
1-2-5. ã³ãã¥ããã£ãŒãåªããïŒ
ç«¶ãããæ¥œããçç±ãšããŠãç«¶ããã³ãã¥ããã£ãŒïŒç«¶ããçéïŒã®åªããããããŸãã
äŸãã°ãåå¿è ã Twitter ã§ç«¶ããã®ããããªãããšããã€ãŒãããããäžçŽè ã芪åã«çããè¿ããŠãããããšãå€ãã§ãã5ããŸããç«¶ããããã£ãŠãã人ã¯ãç«¶ããååŠè ã«å³ããæ¥ããããšãã»ãŒãããŸããããã®ãããæ¥œãã¿ãªããäžéããããšãã§ããŸãã
1-2-6. å°±è·ã«åœ¹ç«ã€ïŒ
ç«¶æããã°ã©ãã³ã°ã¯ãåè¿°ãããšããããããã²ãŒã æèŠã§æ¥œãããã³ã³ãã¹ãïŒãããã¯è¶£å³ïŒã§ããäžæ¹ã§ãå®ã¯å°±è·ã«ã圹ç«ã€ããšãããã®ã§ãã
æ¥æ¬æå€§æã®ç«¶ããã³ã³ãã¹ããéå¬ãã AtCoder ã§ã¯ãã³ã³ãã¹ãã«åå ãããšæçžŸã«å¿ããŠã¬ãŒãã£ã³ã°ãä»ãã®ã§ããããã®ã¬ãŒãã£ã³ã°ãäžå®ä»¥äžããã°ãæ§ã ãªäŒç€Ÿã®æ±äººã«å¿åã§ãããšãããµãŒãã¹ããããŸãã
ã§ããæ±äººã¯å¹Žåãé«ããã®ãå€ããç«¶æããã°ã©ãã³ã°ã®èœåã§é«ã絊æã®ãšã³ãžãã¢è·ã«å°±ããããšãã£ãã±ãŒã¹ãå€ãã§ãã

1-3. æ©éç«¶ãããå§ããŠã¿ãã
ç«¶ããã®æ¥œãããé¢çœãã¯ããããŸããã§ããããïŒ
çããããæ©é仿¥ããç«¶æããã°ã©ãã³ã°ãå§ããŠã¿ãŸããããæ¬ç¯ã§ã¯ãã©ã®ããã«ããŠç«¶ãããå§ããã°ããã®ããåããããã解説ããŸãã
1-3-1. AtCoder ã«ç»é²ãããïŒ
ãŸããæ¥æ¬æå€§æã®ç«¶æããã°ã©ãã³ã°éå¶äŒç€Ÿã
ã«ç»é²ããŠã¿ãŸãããã
AtCoder ã¯ãæ¯é±åæãæ¥æã® 21 æããã³ã³ãã¹ããéå¬ããã ãã§ãªãã3000 å以äžã®ç«¶ããéå»åãè§£ãããšãã§ããã³ã³ãã¹ããµã€ãã§ããç«¶æããã°ã©ãã³ã°ãããã«ããã£ãŠã¯æé©ãšãã£ãŠè¯ããµãŒãã¹ã§ããã®ã«ãããããããç¡æã§ç»é²ã§ããŸãã
1. https://atcoder.jp/ ã«ã¢ã¯ã»ã¹ããŸãã
ãŸã AtCoder ãéããªããšäœãå§ãŸããŸããã
2. ãæ°èŠç»é²ããã¯ãªãã¯ããŸãã
3. æ§ã ãªæ å ±ãå ¥åããŸãã
åºæ¬çã«ã¯ããŠãŒã¶ãŒåã»ã¡ãŒã«ã¢ãã¬ã¹ã»ãã¹ã¯ãŒãã»åœç±ãå
¥åããã°è¯ãã§ããæå±ã¯å¿
é é
ç®ã§ã¯ãªãã®ã§ãå人æ
å ±ã¯ã»ãšãã©å
¥åããå¿
èŠããããŸããã

4. ç»é²å®äºã§ãã
AtCoder ãžã®ç»é²ã¯ããã§ä»¥äžã§ãã
1-3-2. AOJ ã«ç»é²ãããïŒ
AtCoder ãšã¯å¥ã«ãªããŸããã
ãšãããç«¶æããã°ã©ãã³ã°ã®åé¡ãè§£ãããšãã§ãããµã€ãããããŸããåŸè¿°ããŸããããã®ãµã€ãã®äœãè¯ãã®ããšãããšãããã°ã©ãã³ã°ã®åºç€ãã¢ã«ãŽãªãºã ãã³ãŒã¹ã§åŠã¹ããšããç¹ã§ããç»é²æ¹æ³ã¯ã以äžã®ããã«ãªããŸããïŒAOJ ãç¡æã§ç»é²ã§ããŸãïŒ
1. http://judge.u-aizu.ac.jp/onlinejudge/index.jsp?lang=ja ã«ã¢ã¯ã»ã¹ããŸãã
ãµã€ãã«ã¢ã¯ã»ã¹ããããšãããã¹ãŠã®ã¯ããŸãã§ãã
2. ãç»é²ã»èšå®ãâãç»é²ã»èšå®ããã¯ãªãã¯ããŸãã
ãããããšãæ°èŠãŠãŒã¶ãŒç»é²ããšããç»é¢ãåºãŠãããšæããŸãã
3. æ§ã ãªæ å ±ãå ¥åããŸãã
åºæ¬çã«ã¯ããŠãŒã¶ãŒIDã»ãã¹ã¯ãŒãã»ååã»æå±ãå
¥åããã°è¯ãã§ããURL ãå
¥åããå¿
èŠããããŸãããããã°ã»ããŒã ããŒãžã»SNSã®ã¢ã«ãŠã³ããªã©ãé©åãªãã®ãå
¥åããã°è¯ãã§ãã

4. ç»é²å®äºã§ãã
AtCoder ã®ç»é²ãš AOJ ã®ç»é²ãã©ã¡ããç°¡åã§ãããïŒ
äž¡æ¹ãšããã¹ã¯ãŒããå¿ããªãããã«ããŸãããïŒïŒå¿ããããã¹ãŠã®å±¥æŽãäžããããçŽãã«ãªã£ãŠããŸããŸããæ²ããã§ããïŒ
1-3-3. ç«¶ããã®ããã®ç°å¢æ§ç¯ã«ã€ããŠ
(2020.2.28 远èšãããã°ã©ãã³ã°æªçµéšè
åãã)
ããã°ã©ãã³ã°ãããããã«ã¯ããœãŒã¹ã³ãŒããæžããç°å¢ãå¿
èŠã§ããããã§ãå§ããªã®ã¯ã
- Visual Studio 2019 ïŒWindowsã»Mac ç°å¢ã®ããœã³ã³ã®å ŽåïŒ
- Geany ïŒLinux ç°å¢ã®ããœã³ã³ã®å ŽåïŒ
ã§ãããã®äžã§ããVisual Studio ã«ãããŠãããã°ã©ã ã C++ ã§å®è¡ãããšãããŸã§è©³ãã解説ãããèšäºãããã®ã§ã以äžã®èšäºããèªã¿ãã ããã
1-3-4. AtCoder ã§äžåè§£ããŠã¿ããïŒ
AtCoderã»AOJ ãžã®ç»é²ããããŠç°å¢æ§ç¯ãæžãã ããAtCoder ã§æåã®äžåãè§£ããŠã¿ãŸãããããŸããAtCoder ã®åé¡ã®äžã§æãç°¡åãªãã®ã®äžã€ã§ããã
ãè§£ããŠã¿ãŸãããã以äžã®ãããªåé¡ã§ãã
æŽæ° $r$ ãäžããããŸãã
ååŸ $r$ ã®åã®é¢ç©ã¯ååŸ $1$ ã®åã®é¢ç©ã®äœåããæŽæ°ã§åºåããŠãã ãããã€ãŸã $r \times r$ ãåºåããŠãã ããã
æé 1: åé¡ããŒãžã«ã¢ã¯ã»ã¹ãã
ãŸãã¯åé¡ããŒãžãéããŠãã ããã
å顿ã衚瀺ããããšæããŸãã

æé 2: ã³ãŒããæžã
ã³ãŒããæžããŠãã ãããäŸãã° C++ ã®å Žåã以äžã®ã³ãŒããæ£è§£äŸã®äžã€ã§ãã
# include <iostream>
using namespace std;
int main() {
int r;
cin >> r;
cout << r * r << endl;
return 0;
}
ããããããã°ã©ãã³ã°æªçµéšè ã«ã¯ããã©ã®ããã«ããŠã³ãŒããæžãã°è¯ãããåãããªã人ãå€ãã§ããããã§ãäžã€ã®äŸãšããŠãC++ ãåŠç¿ã§ãã䟿å©ãªãµã€ãã玹ä»ããŸãã
äžã®è³æã®ã第 1ã»4ã»5ã»6ã»7 åãèªã¿ãããã°ã©ã ãæžããªããåŠç¿ãããšãç«¶ããã«å¿ èŠãªåºæ¬ç㪠C++ ã®ç¥èãåŠã¹ãŸãã(2020.2.28 远èšã)
æé 3: åé¡ç»é¢ã®äžçªäžãŸã§ã¹ã¯ããŒã«ãã
äžçªäžãŸã§ã¹ã¯ããŒã«ãããšã以äžã®ãããªç»é¢ãèŠãããŸããããã§ãããã°ã©ãã³ã°èšèªãéžã³ããœãŒã¹ã³ãŒãã貌ãä»ãããæåºããã¿ã³ãæŒããŠãã ããããããããšãœãŒã¹ã³ãŒããæåºã§ãããšæããŸãã

æé 4: æåºçµæã確èªãã
ãœãŒã¹ã³ãŒããæåºãããšãèªåçã«ãèªåã®æåºããšããç»é¢ã«ç§»ããšæããŸããããã§ãã°ããåŸ
ã£ãŠãããšãæåºçµæãåºãŸãã

ããã§ AC ãåºããšæ£è§£ãšãªããŸããWA ãåºããšäžæ£è§£ã§ããä»ã«ãè²ã
ãªæåºçµæããããŸãã
| æåºçµæ | æå³ |
|---|---|
| AC | æ£è§£ã§ãããã£ããïŒ |
| WA | åºåãééã£ãŠãããããªãã¹ãã±ãŒã¹ããããŸãã |
| TLE | å®è¡æéå¶é以å ã«ããã°ã©ã ã®å®è¡ãçµãããªãã£ããã¹ãã±ãŒã¹ããããŸãã |
| RE | ããã°ã©ã ãã©ã³ã¿ã€ã ãšã©ãŒïŒå®è¡æãšã©ãŒïŒãèµ·ããããã¹ãã±ãŒã¹ããããŸãã |
| WJ | çŸåšæ¡ç¹ãè¡ãããŠãããŸãããã°ãããåŸ ã¡ãã ããã |
| 2/15... | ãã¹ãã±ãŒã¹ 15 åäž 2 åã®æ¡ç¹ãçµãããŸããã |
çãããAtCoder ã®äœ¿ãæ¹ã¯åãããŸãããïŒ
AtCoder ã¯ãåå¿è
ãç°¡åã«ãµãŒãã¹ã䜿ãããããªç°å¢ãæŽããããŠããŸããäŸãã°ä»å説æãããå顿ãéããŠãããœãŒã¹ã³ãŒããæåºãããŸã§ã®æµãã¯ç°¡åã ã£ããšæããŸãããã以å€ã«ãããã¥ãŒããªã¢ã«ãæŽåãããŠãããªã©ããšãŠã䟿å©ãªã³ã³ãã¹ããµã€ãã§ãïŒ
1-4. ç«¶ãããããåã«| AtCoder ã®ã¬ãŒãã£ã³ã°ãšã¯
æ¬é¡ã®ãç«¶ããäžéã¬ã€ãã©ã€ã³ãã«ç§»ãåã«ãæ¬ç¯ã§ç޹ä»ããã®ã¯ã
- AtCoder ã®ã¬ãŒãã£ã³ã°ã·ã¹ãã
ã§ãã
AtCoder ã®ã¬ãŒãã£ã³ã°ã£ãŠäœïŒ
AtCoder ã§ã¯ãæ¯é±åææ¥ãæ¥ææ¥ã« 2 æéçšåºŠã®ã³ã³ãã¹ããéå¬ãããŸããåã³ã³ãã¹ãã«ã¯ 3000ïœ10000 人çšåºŠ4ãåå ããŸãããã®ã³ã³ãã¹ãã®æçžŸã«å¿ããŠãååå è ã«ã¬ãŒãã£ã³ã°ãšããå€ãä»ããããŸãã
ã€ãŸããã¬ãŒãã£ã³ã°ã¯ã³ã³ãã¹ãã§ã®æè¿ã®å¹³åçãªæçžŸãã€ãŸãå®åã衚ããå€ã ãšæã£ãŠè¯ãã§ãã

AtCoder ã®ã¬ãŒãã£ã³ã°ã«ã¯ãããäžã€ã®ç¹åŸŽããããŸãã
- ã¬ãŒãã£ã³ã°ã«å¿ããŠããã®ãŠãŒã¶ãŒã«è²ãä»ã
ããšã§ããäŸãã°ããç°è²ã³ãŒããŒãããã¯ããŸããæã匷ã人ã ãšãèµ€è²ã³ãŒããŒïŒã¬ããã³ãŒããŒïŒããšãªããŸããå ·äœçã«ã¯ã以äžã®ããã«ãªããŸãã
| ã¬ãŒãã£ã³ã° | è² | çžå¯Ÿçãªäœçœ® | 絶察çãªäœçœ® |
|---|---|---|---|
| 2800+ | èµ€ | äžäœ 0.2% | |
| 2400-2799 | æ© | äžäœ 0.6% | |
| 2000-2399 | é» | äžäœ 2% | ã¢ã«ãŽãªãºã ã®ç ç©¶è·ã»ç ç©¶éçºã§éå®ãããã¬ãã« |
| 1600-1999 | é | äžäœ 5% | ã»ãšãã©ã®ITäŒæ¥ã§ã¢ã«ãŽãªãºã èœåãã«ã³ã¹ããã |
| 1200-1599 | æ°Ž | äžäœ 10% | 忰以äžã®ITäŒæ¥ã§ã¢ã«ãŽãªãºã èœåãã«ã³ã¹ããã |
| 800-1199 | ç· | äžäœ 20% | ãšã³ãžãã¢ãšããŠããªãåªç§ |
| 400-799 | è¶ | äžäœ 35% | åŠçãªãåªç§ |
| 1-399 | ç° | äžäœ 100% | |
| (2020/08/03 çžå¯Ÿçãªäœçœ®ãä¿®æ£ (æŽæ°) ããŸãã) | |||
| ⻠絶察çãªäœçœ®ã«é¢ããŠã¯ AtCoder 瀟é·ã»chokudai ããã®ããã° ããœãŒã¹ã§ãã |
AtCoder ã®ã¬ãŒãã£ã³ã°ãæã€æå³
AtCoder ã®ã¬ãŒãã£ã³ã°ã«ã¯ã䞻㫠3 ã€ã®æå³ããããŸãã
- åçŽã«ããã®ãŠãŒã¶ãŒã®å®åã®èšŒæã«ãªãã
- AtCoder Jobs ã«ãããŠãå¿åã§ããæ±äººãæ±ºãŸã£ãŠãããïŒäŸãã°ããç·è²ã³ãŒããŒã以äžã«ãªããšãæ²èŒãããŠãããã¡ 7 å²çšåºŠã®æ±äººã«å¿åã§ããïŒ
- ã¬ãŒãã£ã³ã°ãé«ããšãäžéšã®ã³ã³ãã¹ãã§ã¬ãŒããä»ããªããªããïŒäŸãã°ãAtCoder Beginner Contest ãšããåå¿è åãã³ã³ãã¹ãã®å Žåããé»è²ã³ãŒããŒã以äžã«ãªããšã¬ãŒããä»ããªããªããïŒ
ã©ããã£ãŠã¬ãŒãã£ã³ã°ãèŠãããã®ãïŒ
æå€ãšç¥ããªã人ãå€ãã®ã§ãããAtCoder ã®å³äžã®èªåã®ãŠãŒã¶ãŒåãæžãããŠãããšãããã¯ãªãã¯ããŠãããããããã€ãããã£ãŒã«ããã¯ãªãã¯ãããšãèªåã®ã¬ãŒãã£ã³ã°ãèŠãããŸãã

以äžã®ãããªãã®ã衚瀺ããããšæããŸãã
- ã³ã³ãã¹ãã«åå ããããšã®ãã人ïŒèªåã®ã¬ãŒãã£ã³ã°ãšãã¬ãŒãã£ã³ã°å€åã°ã©ã
- ã³ã³ãã¹ãã«åå ããããšã®ãªã人ïŒãRatedã³ã³ãã¹ãã«ãŸã åå ããŠããŸãããããšãã衚瀺
ã¡ãªã¿ã«ããããã£ãŒã«ã«ãã**ãã³ã³ãã¹ãæçžŸè¡šã**ã®ãªã³ã¯ãã¯ãªãã¯ãããšãåã³ã³ãã¹ãã§ã©ãã ãæåããã®ããã©ãã ã倱æããã®ããã©ããããã®ããã©ãŒãã³ã¹ãæ®ããã®ããåããã®ã§ãã³ã³ãã¹ãã«åå ããåŸã«æ¯éã¯ãªãã¯ããŠã¿ãŸããããïŒæ³šïŒã¬ãŒãã£ã³ã°ãåæ ãããã®ã«ã¯ 15 å ïœ 1 æéããããŸããïŒ
AtCoder ã¬ãŒãã£ã³ã°ã«é¢ããéèŠãªæ³šæ
AtCoder ã§ã¯ãã³ã³ãã¹ãåå åæ°ã®å°ãªããã¡ã¯ãã¬ãŒãã£ã³ã°ãäœã衚瀺ãããŸããäŸãã°ãååã®ã³ã³ãã¹ãã§å€§æåããŠããéè²ã³ãŒããŒãçžå¿ã®çµæãæ®ãããšããŠããã³ã³ãã¹ãåå åŸã®ã¬ãŒãã£ã³ã°ã¯è¶è²ã«ãªããŸãã
ã§ãã®ã§ãæåã®æ°åã«ã¬ãŒãã£ã³ã°ãå šç¶äžãããªããŠãæ°ã«ããããšã¯ãããŸãããå®éã«ãAtCoder ã®ã¬ãŒãã£ã³ã°ãå®å šã«å®åéãã«ãªãã«ã¯ã15 åçšåºŠã³ã³ãã¹ãã«åå ããå¿ èŠããããŸãã
ããŠãAtCoder å§ãããŠã®äººã«ã¯ããŸããç°è²ã³ãŒããŒãããè±åºããŠããè¶è²ã³ãŒããŒãã«ãªãããããšç®æšãç«ãŠãã®ãããã§ããããåçŽç·šã§ã¯ãè¶è²ã«çãæéã§ãªãããã®éçãèšãããŠãããŸãã®ã§ãåŒãç¶ããèªã¿ããã ãããšå¬ããã§ãã
1-5. ãè¶è²ã³ãŒããŒãã§èŠæ±ããã 4 ã€ã®ããš
AtCoder ã§è¶è²ã³ãŒããŒãã€ãŸãã¬ãŒãã£ã³ã° 400 ã«å°éããããã«ã¯ã
- AtCoder Beginner Contest ã® A, B åé¡ã確å®ã«ïŒå€§æ¹ 15 å以å ã§ïŒè§£ãã
- AtCoder Beginner Contest ã® C åé¡ãç°¡åãªãã®ãªãè§£ãã
ããšãèŠæ±ãããŸãããã®ããã«ã¯ã以äžã® 4 ã€ã®ããšãã§ããã°è¯ããšèããŸãã
æ¡ä»¶ 1
ç°¡åãªããã°ã©ã ãæžãããå ·äœçã«ã¯ã以äžã® 7 ã€ãå«ãããã°ã©ã ãæžãããïŒå®ã¯ç«¶æããã°ã©ãã³ã°ã¯ãããã»ã©å€ãã®ããã°ã©ãã³ã°èšèªã®ç¥èããªããŠãååæŠããŸããïŒ
- å ¥åãåºå
- 代å
¥ãåçŽãªååæŒç®åŠçïŒ
+,-,*,/,=ãªã©ïŒ - æ¡ä»¶åå²ïŒif æãªã©ïŒ
- ç¹°ãè¿ãåŠçïŒfor æãªã©ïŒ
- æååïŒstringïŒ
- æµ®åå°æ°ç¹ïŒdouble åãªã©ïŒ
- é åïŒäºæ¬¡å é åãå«ãïŒ
æ¡ä»¶ 2
- ã¢ã«ãŽãªãºã ãšã¯äœã
- èšç®éïŒèšç®åæ°ïŒãšã¯äœã
ãçè§£ããããããããšãæããã«å¶éæéå ã«å®è¡ãçµãããªããœãŒã¹ã³ãŒããåºããªããªããã¡ãªã¿ã«ãç«¶ããã§ã¯ $10^{8}$ ïœ $10^{9}$ åçšåºŠã®ã«ãŒããåãããšããããŠããã
æ¡ä»¶ 3
AtCoder Beginner Contest ã® A, B åé¡ã«ãããŠããå顿ã®éãã«å®è£ ããã°è¯ãããšããããšãæèããŠã³ãŒããæžããããã«ãªãã
æ¡ä»¶ 4
ãå šæ¢çŽ¢ããå®è£ ã§ããããã«ããã
â» å®éã«ãAtCoder Beginner Contest ã® B åé¡ïŒ200 ç¹ïŒã® 70% 以äžãã以äžã® 32 (2/19 11:24 PM ä¿®æ£ããŸãã) ã€ã«åé¡ã§ãããïŒä»ã® 30% ãåæ©çãªæ°åŠçç¥èãããã°è§£ããïŒ
- åé¡æã«æžããŠããéãã«å®è£ ããŠè§£ããåé¡
- ããåŸãå¯èœæ§ããã¹ãŠå šæ¢çŽ¢ããŠè§£ããåé¡
è£è¶³
äžã® 4 ã€ã®æ¡ä»¶ãæºããããã«ãªãã°ãAtCoder Beginner Contest ã® B åé¡ãŸã§ã¯ 9 å²ä»¥äžè§£ããããã«ãªããšæããŸãã
1-6. ç¯ã®ã¬ã€ãã©ã€ã³ã§åŸè¿°ããŸãããC åé¡ããã³ã³ãã¹ãã«åºãŸãã£ããã㊠AtCoder ã«æ £ããããšã§ã確ççã«è§£ããããã«ãªããšæããŸãã
ããŠãããããã§ããããã«ãªãããã«ã¯ãã©ã®ãããªç·Žç¿ãããã°è¯ãã®ã§ããããã
1-6. ãè¶è²ã³ãŒããŒãã«ãªãããã®ã¬ã€ãã©ã€ã³
è¶è²ã³ãŒããŒã«å°éããããã«ããã¹ãããšã¯ã以äžã® 5 ã€ã ãšèããŠããŸãã
- ã¹ããã 1: AOJ ã®ãIntroduction To Programming Iããå šéšè§£ãïŒ
- ã¹ããã 2: èšç®éãšã¢ã«ãŽãªãºã ãäœãçè§£ããïŒ
- ã¹ããã 3: ãAtCoder Beginners Selectionããè§£ãïŒ
- ã¹ããã 4: å šæ¢çŽ¢ã«æ £ããïŒ
- ã¹ããã 5: ã³ã³ãã¹ãã«åºãŸããïŒ
ãããããé çªã«èª¬æããŠãããããšæããŸãã
1-6-1. AOJ ã®ãIntroduction To Programming Iããå šéšè§£ãïŒ
ç«¶ããã¯ãç°¡åãªããã°ã©ã ãæžããããã«ãªããšããããå§ãŸããŸããããã§ãè¶è²ã³ãŒããŒã«ãªããŸã§ã«å¿ èŠãªããã°ã©ãã³ã°èšèªã®ç¥èãšåºæ¬çãªã¢ã«ãŽãªãºã ãããŸãšããŠåŠç¿ã§ããã³ãŒã¹ããããŸãã
ã§ããå šéšã§ 44 åãããŸãããæåŸã® 4 åã¯ç«¶ãããšã¯ããŸãé¢ä¿ãªãã®ã§ãITP1_1-A ãã ITP1_10-D ãŸã§ã® 40 åãè§£ãããšããå§ãããŸããããããè§£ããšãå°ãªããšã
- è¶è²ã³ãŒããŒã«ãªãããã«å¿ èŠãªããã°ã©ãã³ã°èšèªã®ç¥è
- è¶è²ã³ãŒããŒã«ãªãããã«å¿ èŠãªã¢ã«ãŽãªãºã ã®ç¥èïŒå šæ¢çŽ¢ãã·ãã¥ã¬ãŒã·ã§ã³ãªã©ïŒ
ã¯èº«ã«ã€ããŸããç¹ã«ããã°ã©ãã³ã°æªçµéšè
ã«ã¯ãå§ãã®ã³ãŒã¹ã§ãããæ¢ã«ããã°ã©ãã³ã°èšèªãçè§£ããŠããããšãã人ã§ããAtCoder Beginner Contest ã® A åé¡ã»B åé¡çžåœã®ç°¡åãªããã°ã©ã ãæžãç·Žç¿ã«ãªãã®ã§ããã£ãŠãããæ¹ãè¯ããšæããŸãã

1-6-2. èšç®éãšã¢ã«ãŽãªãºã ãäœãçè§£ããïŒ
ç«¶ããã®æ¬è³ªãšããããã®ãããã¢ã«ãŽãªãºã ããšãèšç®éãã§ãã
AtCoder Beginner Contest ã® A åé¡ã»B åé¡ãè§£ããŠãããã¡ã¯ãããã°ã©ã ã®å¹çãæèããªããŠãè§£ããåé¡ãå€ãã§ããããããè¶è²ã³ãŒããŒã«ãªãããã«ã¯ C åé¡ãååãããã®ç¢ºçã§è§£ãå¿ èŠãããã®ã§ããã¢ã«ãŽãªãºã ãšèšç®éãäœãããããã¯ç¥ã£ãŠãããšè¯ããšæããŸããããã§ãèªãã¹ãèšäºã 2 ã€ãããŸãã
ã¢ã«ãŽãªãºã ãçè§£ããããã«ã¯ïŒ
- ã¢ã«ãŽãªãºã ãšã¯äœãïŒïŒ ïœ æç³»çç³»åããæ¥œãããç²Ÿéž 6 å ïœ by @drken
èšç®éãçè§£ããããã«ã¯ïŒ
- èšç®éãªãŒããŒã®æ±ãæ¹ãç·æŽçïŒ ã ã©ããã log ãåºãŠæ¥ãã ã by @drken
1-6-3. ãAtCoder Beginners Selectionããè§£ãïŒ
次ã«ããã¹ãã¯ãAtCoder ã®åé¡åŸåãã€ããããšã§ããã€ãŸãã
- AtCoder ã®ç°¡åãªåé¡ã¯å€§äœäœã«åé¡ãããã®ã
ãšããããšãç¥ãããšã倧äºã§ããããã§ã
ãšãããã®ãè§£ãããšããå§ãããŸãïŒãAtCoder Beginner Contest ã® A, B, C åé¡ã«åºãŠãããããªç°¡åãªåé¡ã®åŸåããã£ãã® 11 åã§ãããããšããç¹ã§ãšãŠãæè²çã§ãã
ãªãã11 åäž 8 åç®ä»¥éã¯åå¿è ã«ãšã£ãŠã¯å°ãé£ããã§ããããã§ãåé¡è§£èª¬ã»ã³ãŒãã®æžãæ¹ãªã©ãã¹ãŠãèŒã£ãŠããèšäºããããŸããè§£æ³ãåãããªã人ã¯ãã¡ãããå šåè§£ããäººãæ¯éèªã¿ãŸãããã
- AtCoder ã«ç»é²ãããæ¬¡ã«ããããš ïœ ããã ãè§£ãã°ååéããïŒéå»åç²Ÿéž 10 å ïœ by @drken
1-6-4. å šæ¢çŽ¢ã«æ £ããïŒ
AtCoder Beginner Contest ã® B åé¡ã確å®ã«è§£ããC åé¡ãç°¡åãªãã®ãªãè§£ããããã«ããããã«ã¯ãå šæ¢çŽ¢ãåŠç¿ããã®ãäžçªéãã§ãããŸããå šæ¢çŽ¢ãšã¯ã©ã®ãããªãã®ãªã®ã§ããããã
ããåŸãç¶æ ããã¹ãŠåæããŠããããã調ã¹äžããã
ã€ãŸãããå šãã¿ãŒã³ã調ã¹äžããããšããããšã
äŸãã°ã以äžã®åé¡ãèããŠã¿ãŸããããïŒããã°ã©ãã³ã°ã³ã³ãã¹ããã£ã¬ã³ãžããã¯ïŒè»æ¬ïŒã®æåã«åºãŠããåé¡ã§ããïŒ
æ°åãæžãããŠãã $N$ æã®çŽåããè¢ã«å ¥ã£ãŠããŸããããªãã¯ãã®è¢ããçŽåããåãåºããæ°åãèŠãŠè¢ã«æ»ããšããããšã 4 åè¡ãã4 åã®æ°åã®åã $M$ ã«ãªã£ãŠããã°ãããªãã®åã¡ã§ããçŽåãã«æžãããŠããæ°åã {$K_1, K_2, ..., K_N$} ã§ããå Žåãããªããåã€ãããªå¯èœæ§ã¯ãããŸããã
å¶çŽïŒ$N \leq 50, M \leq 10^{8}, K_i \leq 10^{8}$
ããã¯ã1 åç®ã« $K_a$ã2 åç®ã« $K_b$ã3 åç®ã« $K_c$ã4 åç®ã« $K_d$ ãåãåºããšããŠã$(a, b, c, d)$ ã®ããåŸãçµãå šéã調ã¹ãïŒåéã«ãŒããããïŒãšè§£ããŸãã$N^4$ åçšåºŠã®èšç®ãå¿ èŠã§ããã$N \leq 50$ ãªã®ã§ãããã $50^{4} â 6.25 \times 10^{6}$ åã®ã«ãŒãããåãå¿ èŠããªããå®è¡æéå¶éã«ã¯äœè£ããã£ãŠéã«åããŸãã
ãããããããæãã§å šæ¢çŽ¢ã®åé¡ãè§£ããã®ã§ãïŒ
4 çš®é¡ã®å šæ¢çŽ¢
å®ã¯ãå šæ¢çŽ¢ã¯ 4 ã€ã®çš®é¡ããããŸãã
- æ¬åœã«å
šéã調ã¹äžãããå
šæ¢çŽ¢ã
- åè¿°ã®åé¡ã®ãèšç®åæ° $N^4$ åã®ã¢ã«ãŽãªãºã ãããã§ãã
- 倧äœã®å Žåãå€éã«ãŒãã§è§£ããŸãã
- 工倫ããŠæ¢çŽ¢ã®éãæ°ãæžãããå
šæ¢çŽ¢ã
- äŸãã°ãåè¿°ã®åé¡ã§ããã°ã$(a, b, c)$ ã®çµãå šéã調ã¹äžãããšããŸãã$(a, b, c)$ ã®çµã決ãŸã£ãããåŸã¯ $A_d = M-K_a-K_b-K_c$ ã§ãããã㪠$d$ ãååšããã調ã¹ãã°è¯ãã§ããäºãé·ã $10^{8}$ ã® bool åé åãå®çŸ©ãã$1$ ä»¥äž $10^8$ 以äžã®åæŽæ°ãååšãããã©ãããæåã«èšé²ããŠããã°ãé«éã«èª¿ã¹ãããŸãã
- 倧äœã®å Žåãå€éã«ãŒãã§äžæããããŸãã
- ãããå
šæ¢çŽ¢
- å€éã«ãŒãã§ã¯ããŸããããªãå šæ¢çŽ¢ã® 1 ã€ã§ãã
- 詳ããã¯ããã¡ãã®èšäºãåç §ããŠãã ããã
- é åå
šæ¢çŽ¢
- å€éã«ãŒãã§ã¯ããŸããããªãå šæ¢çŽ¢ã® 1 ã€ã§ãã
- 詳ããã¯ããã¡ãã®èšäºãåç §ããŠãã ããã
å šæ¢çŽ¢ã®åé¡
- AtCoder Beginner Contest 144 B - 81ãåºç€ã®åºç€ã§ãã
- AtCoder Beginner Contest 150 B - Count ABCãå šæ¢çŽ¢ãšãããããå šéã調ã¹äžããŸããã
- AtCoder Beginner Contest 122 B - ATCoderããããåºæ¬ã§ãã
- AtCoder Beginner Contest 136 B - Uneven Numbersããããåºæ¬ã§ãã
- AtCoder Beginner Contest 106 B - 105ããããåºæ¬ã§ãã
- AtCoder Beginner Contest 120 B - K-th Common DivisorsãåçŽãªèå¯ãå¿ èŠã§ãããåºæ¬ã§ãã
- AtCoder Beginner Contest 057 C - Digits in Multiplicationãæ¢çŽ¢éãæ°ãé 匵ã£ãŠæžãããŸãã
- AtCoder Beginner Contest 095 C - Half and Halfãæ¢çŽ¢éãæ°ãé 匵ã£ãŠæžãããŸãã
- äžäºäœåä¿¡èšéè¡ããã°ã©ãã³ã°ã³ã³ãã¹ã2019 D - Lucky PINãæ¢çŽ¢éãæ°ãé 匵ã£ãŠæžãããŸãã
- AtCoder Beginner Contest 128 C - Switchesããããå šæ¢çŽ¢ã®åºæ¬ã§ãã
- AtCoder Beginner Contest 147 C - HonestOrUnkind2ããããå šæ¢çŽ¢ã®åºæ¬ã§ãã
- AtCoder Beginner Contest 145 C - Average Lengthãé åå šæ¢çŽ¢ã®åºæ¬ã§ãã
- AtCoder Beginner Contest 150 C - Count Orderãé åå šæ¢çŽ¢ã§è§£ããŸãã
- AtCoder Beginner Contest 054 C - One-stroke Pathãé åå šæ¢çŽ¢ã§è§£ããŸãã
1-6-5. ã³ã³ãã¹ãã«åºãŸããïŒ
æåŸã«ãæãéèŠãªããšãæžããŸããããã¯ãã³ã³ãã¹ãã«åºå Žããããšã§ãã
AtCoder ã§ã¯ãæåã®ã¬ãŒãã£ã³ã°ã 0 ã§ãããããã³ã³ãã¹ãã«åºå Žããªããã°ã¬ãŒãã£ã³ã°ãäžãããŸãããä»®ã«ãããªãã®å®åãè¶è²ã³ãŒããŒã®æ¡ä»¶ã§ããã¬ãŒãã£ã³ã° 400 ããå°ãäžã ãšããŠããããã 10åçšåºŠã³ã³ãã¹ãã«åºå Žããªããã°è¶è²ã«ãªããŸããããã®ãããæ¯é±ã³ã³ãã¹ãã«åºç¶ããããšãéèŠã§ãã
ãŸããã³ã³ãã¹ãã«åºå Žããããšã§ãAtCoder ã®åé¡ã«æ £ããããåé¡ã®æèŠãã€ããããããã®ã§ãçµæçã«å®ååäžã«ç¹ãããŸãã
ã€ãŸããã³ã³ãã¹ãåºå Žã¯ AtCoder å®ååäžã®æå€§ã®è¿éã§ãã
å®éã«ã以äžã®è¡šã®ããã«ãã³ã³ãã¹ãã«å€ãåå ããã»ããã¬ãŒãã£ã³ã°ã®äžå€®å€ã¯å§åçã«é«ãã§ããïŒäŒžã³ãã¿ã€ãã³ã°ã¯äººã«ãã£ãŠéãã®ã§ãå®éã«äœåãåå ããŠã¿ãŠäžå€®å€è¡ããªããŠãå šç¶æ°ã«ããªãã§ãã ãããïŒ
| åå åæ° | ã¬ãŒãã£ã³ã°ã®äžå€®å€ |
|---|---|
| 1 å | 15 |
| 2 å | 62 |
| 5 å | 241 |
| 10 å | 521 |
| 20 å | 884 |
| 100 åä»¥äž (åè) | 1657 |
| â» 2020/2/17 æç¹ã§ã®ããŒã¿ã |
ã³ã³ãã¹ãã®çš®é¡ / åå¿è åºãã¹ãã³ã³ãã¹ã
åºæ¬çã«ãAtCoder ã«ã¯ 4 çš®é¡ã®ã³ã³ãã¹ãããããŸãã
(2020/08/03 AGC ã®ã¬ãŒãå€åç¯å²ãä¿®æ£ (æŽæ°) ããŸãã)
| ã³ã³ãã¹ã | å顿° | æé | ã¬ãŒãå€å察象 |
|---|---|---|---|
| AtCoder Beginner Contest (ABC) | 6 å | 100 å | 0 ïœ 1999 |
| AtCoder Regular Contest (ARC) | 6 å | 120 åçšåºŠ | 0 ïœ 2799 |
| AtCoder Grand Contest (AGC) | 6 å | 150 åçšåºŠ | 1200 以äžïŒåå ã§ããã®ã¯å šå¡ïŒ6 |
ãã®ãã¡ãåå¿è ã«ã¯ãAtCoder Beginner Contestãã«åºå Žããããšããå§ãã§ãããã®ä»ã®ã³ã³ãã¹ãã«ãåºå ŽããŠè¯ãã§ããã1 åããè§£ããªãã£ããããŠã¢ãã管çã倧å€ã«ãªãå ŽåããããŸãã
ã¡ãªã¿ã«ãããŒãšã³ã¹ããã°ã©ãã³ã°ã³ã³ãã¹ããããã¯ã³ãŽããã®ææŠç¶ãªã©ã®äŒæ¥åãä»ããã³ã³ãã¹ãããããŸãããåºæ¬çã«ã¯ ABC ã¯ã©ã¹ã ARC ã¯ã©ã¹ã®ããããã§ãããã³ã³ãã¹ãäžèЧãã§éäžžãä»ããŠããã° ABC ã¯ã©ã¹ãæ©äžžãä»ããŠããã° ARC ã¯ã©ã¹ã赀䞞ãä»ããŠããã° AGC ã¯ã©ã¹ã§ããé»äžžã¯éå
¬åŒã³ã³ãã¹ããªã©ãã¬ãŒãã£ã³ã°ãæŽæ°ãããªãã³ã³ãã¹ãã§ãã

ã¢ãã管çãããéèŠ
ç«¶ããã®ã³ã³ãã¹ãã§ã¯ãæåãããšããšå€±æãããšãããããŸããäŸãã°ã
- ã³ã³ãã¹ãã§å€±æããŠã¬ãŒãã£ã³ã°ã 50 äžããŠããŸã£ãã
- æåã® AtCoder Beginner Contest ã§ 1 åããæ£è§£ã§ããªãã£ãã
ãªã©ã§ãç«¶ãããããã人ããšãŠãå€ãã®ãçŸç¶ã§ããå®éã«ãAtCoder ã³ã³ãã¹ãã«åå ããããšããã人ã®**çŽ 6 å²ãåå åæ° 4 å以äžã§ãã**ã§ããåè¿°ã®ãšãããã³ã³ãã¹ãåå åæ°ãå€ãã»ã©ã¬ãŒãã£ã³ã°äžå€®å€ãäžãããŸãã人ãããããå®åã䌞ã³ãã¿ã€ãã³ã°ã¯éããŸãããã¢ãããŒã·ã§ã³ãç¶æããŠã楜ããç«¶ããããã£ãŠããããšã倧åã§ãã
1-7. Tips: AtCoder ã®éå»åãè§£ãã䟿å©ãªãµã€ã
çããã®äžã«ã¯ã
ã³ã³ãã¹ãã«åºãã ãã§ã¯å顿°ãè¶³ããªãïŒ
ãã£ãšç·Žç¿ããŠå®åãäžãããïŒ
ãšæã人ãããã®ã§ã¯ãªãã§ãããããããã§ã䟿å©ãªãµã€ãã玹ä»ããŸããããã¯ã
ã§ãïŒãAtCoder ã§è§£ããéå»åã衚圢åŒã§ãŸãšãŸã£ãŠããã ãã§ãªããèªåã®ãŠãŒã¶ãŒåãå
¥ãããšãèªåãååé¡ãæ¢ã«æ£è§£ããŠãããã©ããã衚瀺ãããŸããéå»åã®æ€çŽ¢ã ãã§ãªããã³ã³ãã¹ãã«åããç·Žç¿ã®ç®¡çã«ã圹ç«ã¡ãŸããçããç©æ¥µçã«äœ¿ã£ãŠãããŸãããã

1-8. ããŸãïŒç«¶ããã«ããã C++ ã®ããã
AtCoder ã§ã¯ãæ§ã ãªããã°ã©ãã³ã°èšèªã§ç«¶æãè¡ãããšãã§ããŸããå®éã«ã
- C++14
- Java
- Python
- C#
- Ruby
ãªã©ãå«ãã50çš®é¡ä»¥äžã®ããã°ã©ãã³ã°èšèªã§æåºãããããšãã§ããŸãããã¡ãã倿§æ§ã¯ãã£ãŠããã®ã§ãããæããããããã®ã¯ C++ ã ãšæããŸãã
C++ ãããããçç±
ç§ãç«¶ããã« C++ ãããããçç±ã¯ã䞻㫠3 ã€ãããŸãã
- AtCoder ãŠãŒã¶ãŒã®åæ°ä»¥äžã C++ ã䜿ã£ãŠããã7
- AtCoder å ¬åŒè§£èª¬ã®ãœãŒã¹ã³ãŒãã解説èšäºã®ãœãŒã¹ã³ãŒãã®å€§åã C++ ã§ããã
- ããã°ã©ãã³ã°ã³ã³ãã¹ããã£ã¬ã³ãžããã¯ïŒè»æ¬ïŒãããã°ã©ãã³ã°ã³ã³ãã¹ãæ»ç¥ã®ããã®ã¢ã«ãŽãªãºã ãšããŒã¿æ§é ãªã©ã®ç«¶ããé¢é£ã®æ¬ã®ã»ãšãã©ã§ããµã³ãã«ãœãŒã¹ã³ãŒããšã㊠C++ ã䜿ãããŠããã
- å®è¡é床ãä»ã®èšèªã«æ¯ã¹ãŠé«éã§ãããããç«¶ããã«æå©ã§ãããå®éã«ãPython ã®ããã°ã©ã ãã C++ ã®ããã°ã©ã ã®æ¹ã 4 å以äžå€ãã®ã«ãŒããåããã
C++ 以å€ããã£ãŠã¯ãããªãã®ã
ããã°ã©ãã³ã°èšèªã«ã¯å€æ§æ§ãããã®ã§ãå¥ã« C++ 以å€ã§ç«¶æãããŠãå šãæ§ããŸãããåœç¶ãæãæžããããèšèªã§ã³ã³ãã¹ãã«åå ããã®ã¯è¯ãããšã§ãã8
ãã ã解説èšäºãç«¶ããé¢é£æ¬ã®å€ã㯠C++ ã§æžãããŠããã®ã§ãç«¶ãããããæ©äŒã« C++ ãåŠç¿ããŠãå°ãªããšã C++ ã®ãœãŒã¹ã³ãŒããèªããããã«ããæ¹ããããããããšæããŸãã
1-9. æ¬èšäºãçµããæ¬¡ã¯ïŒ
æ¬èšäºã®å 容ããã¹ã¿ãŒã§ããã°ãè¶è²ã³ãŒããŒã«ãªãããšæããŸããè¶è²ã³ãŒããŒãšãã£ãããAtCoder ã®äžäœ 35% ã§ãã®ã§ãååç«æŽŸã ãšæããŸãã
ããããç·ã³ãŒããŒãæ°Žè²ã³ãŒããŒã«ãªã£ãŠã¿ããïŒããšãã倢ãæã€ã®ã¯ããããšã§ããåçŽç·šããé«ãã¬ãã«ããã©ããŒããŠãããŸãã®ã§ãæ¯éäžçŽç·šã»äžçŽç·šããèªã¿ãã ããã
ïŒåå¿è ã®æ¹ã§ããç«¶ããäžçŽè ã»äžçŽè ã«ã¯ã©ããªã¢ã«ãŽãªãºã ã»ç¥èã»ç·Žç¿æ¹æ³ãæ±ããããã®ãç¥ãæ©äŒã«ãªãã®ã§ãèå³ãããã°æ¯éãèªã¿ãã ãããïŒ
äžçŽç·š
äžçŽç·š
-1. ã€ã¥ã
次ã¯ãäžçŽç·šã«ç¶ããŸãã
-
AtCoder æ ªåŒäŒç€Ÿã¯ã髿© çŽå€§ïŒ@chokudaiïŒããã«ãã£ãŠ 2012 幎 6 æ 20 æ¥ã«èšç«ãããäŒç€Ÿã§ãã2016 幎ããåœéåãã2019 幎ã«ã¯é»éãã 3 ååã®åºè³ãåãããè¿å¹Žçºéäžã®äŒæ¥ã§ãã â©
-
äžè¬çã«ãããœã³ã³ã®åŠçæ§èœã¯ãäžè¬çã« 1 ç§ããã 5000 äžå ã 5 ååã®ã«ãŒããåãããšãã§ããçšåºŠã§ããç«¶æããã°ã©ãã³ã°ã§ã¯ãããã 2 ç§çšåºŠã§å®è¡ãçµãããªããã°äžæ£è§£ãšãªãããã1 åå ã 10 ååã®ã«ãŒããåãããšããããšã«ãªããŸãã â©
-
äŸãã°ãAtCoder World Tour Finals E - e ãšããåé¡ãæããããŸããåé¡åãäžæåãªãããAtCoder å²äžæãé£ããåé¡ã®äžã€ã§ãã â©
-
2020 幎 8 æ 3 æ¥æç¹ã§ããä»åŸããã«å¢ããå¯èœæ§ããããŸãã â© â©2
-
ç§ã¯ãŸã 髿 ¡ 2 幎çã§ãããã Twitter ã¯éµã¢ã«ãŠã³ãã§ãããããããå€ãã®æ¹ã ã®è³ªåã«çããããšã¯ã§ããŸãããã§ãããç§ãåçŽè ã»äžçŽè ã ã£ãææã«ã¯å€§å€å€ãã®æ¹ã ãé Œã£ãŠããŸãããç«¶ããã³ãã¥ããã£ãŒã§åªãã人ã¯ããããããŸããã§ããããç§ã«é Œããã人ãããã°ãç§ã倧åŠçã«ãªããŸã§ãåŸ ã¡ãã ããã(2/20 02:40 AM. 远èš) â©
-
2020 幎 8 æ 3 æ¥æç¹ã§ããä»åŸå€æŽãããå¯èœæ§ããããŸããïŒå ã ã¯å šå¡ã¬ãŒãå€åããã³ã³ãã¹ãã ã£ãã®ã§ãããã³ã³ãã¹ãã®é£åãªã©ã®çç±ã«ããã2020 幎 5 æé ã«ã¬ãŒãå€åç¯å²ãå€ãããŸãããïŒ â©
-
äŸãã°ãAtCoder Beginner Contest 152 ã«ãããŠã22230æåº / 42967æåºã C++ ãŸã㯠C++14 ã§ãã â©
-
äŸãã°ãAtCoder 瀟é·ã® @chokudai ãã㯠C# ã§ã³ãŒãã£ã³ã°ããããšãå€ãã§ãã â©

