Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
100322 | 陈志轩 | 九连环 | C++ | 通过 | 100 | 0 MS | 264 KB | 634 | 2023-08-25 11:11:53 |
#include<bits/stdc++.h> using namespace std; void down(int x); void up(int x); string dp[350]; int o = 0; void down(int x){ if (x > 2){ down(x - 2); } o++; dp[o] = dp[o - 1]; dp[o][x - 1] = '0'; if (x > 2){ up(x - 2); } if (x > 1){ down(x - 1); } } void up(int x){ if (x > 1){ up(x - 1); } if (x > 2){ down(x - 2); } o++; dp[o] = dp[o - 1]; dp[o][x - 1] = '1'; if (x > 2){ up(x - 2); } } int main(){ dp[0] = "111111111"; int n; down(9); while (cin>>n){ if (n > 341){ puts("-1"); } else{ cout<<dp[n]<<'\n'; } } return 0; }