# 108 區賽
---
## 1.
沒存下來
---
## 2.
沒存下來
---
## 3.
沒存下來
---
## 4.
太簡單不想寫
---
## 5.
```cpp=
#include <bits/stdc++.h>
using namespace std;
struct coor{
int x;
int y;
};
int main () {
char letter[5][12] = {{'0','0','0','0','0','0','0','0','0','0','0','0'},
{'0','Q','W','E','R','T','Y','U','I','O','P','0'},
{'0','A','S','D','F','G','H','J','K','L','0','0'},
{'0','Z','X','C','V','B','N','M','0','0','0','0'},
{'0','0','0','0','0','0','0','0','0','0','0','0'}};
string s;
while (cin >> s) {
coor start = {1,1};
bool c = false;
for (int i = s.length()-3; i < s.length()-1; i++) {
if (s[i] != 'e') {
cout << -1 << endl;
c = true;
break;
}
}
if (c) continue;
for (int i = 0; i < s.length()-1-1; i++) {
switch (s[i]) {
case 'r' :
if (start.x+1 > 11|| letter[start.y][start.x+1] == '0') break;
start = {start.x+1,start.y};
break;
case 'l' :
if (start.x-1 < 0 || letter[start.y][start.x-1] == '0') break;
start = {start.x-1,start.y};
break;
case 'u' :
if (start.y-1 < 0 || letter[start.y-1][start.x] == '0') break;
start = {start.x, start.y-1};
break;
case 'd' :
if (start.y+1 > 4 || letter[start.y+1][start.x] == '0') break;
start = {start.x, start.y+1};
break;
case 'e' :
cout << letter[start.y][start.x];
}
}
cout << endl;
}
}
```
---
## 6.
```cpp=
#include <bits/stdc++.h>
using namespace std;
int dp[50];
long long m, n;
long long fs(int n) {
if (dp[n] != -1) return dp[n];
dp[n] = dp[n-1] + dp[n-2];
return dp[n];
}
int main () {
memset(dp,-1,sizeof(dp));
dp[0] = 0;
dp[1] = 1;
int v;
cin >> v;
while (v--) {
cin >> m >> n;
for(int i = 1; i <= m; i++) {
n = fs(n);
}
cout << n << endl;
}
}
```
---
## 7.
```cpp=
#include <bits/stdc++.h>
using namespace std;
vector<int> conect[100];
int n, center;
int dis[100];
int main () {
memset(dis,0,sizeof(dis));
int par, ch, ans = 0;
cin >> n;
for (int i = 1; i < n; i++) {
cin >> par >> ch;
conect[par].push_back(ch);
conect[ch].push_back(par);
}
cin >> center;
queue<int> num;
num.push(center);
while(!num.empty()) {
int now_n = num.front();
num.pop();
for(int i = 0; i < conect[now_n].size(); i++) {
int x = find(conect[conect[now_n][i]].begin(),conect[conect[now_n][i]].end(),now_n) - conect[conect[now_n][i]].begin();
conect[conect[now_n][i]].erase(conect[conect[now_n][i]].begin()+x);
dis[conect[now_n][i]] = dis[now_n] + 1;
num.push(conect[now_n][i]);
}
}
int sum = 0, po;
for (int i = 0; i < n; i++) {
if (dis[i] > sum) {
sum = dis[i];
po = i;
}
}
cout << sum << " " << po << endl;
}
```
---
## 8.
正在寫
---
## 9.
求助
---
## 10.
求助
---