2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Est dolium eversum in kindergartenlinearibus compages ultrices non nisi in dextra parte situlae collocari, sed ultrices a situla laeva vel dextra sumi potest. Quisque ultrices separatum numerum habet. Magister potest unum vel plures basketballs in tempore ponere ex parte sinistra situla.
Exempli gratia, si magister quinque basketballs numerorum 1, 2, 3, 4, et 5 ordine ponit, tunc pueri numeros educere possunt "1, 2, 3, 4, 5" vel "3, 1, 2; basketballs numero successiue "4,5", sed basketballs numerandi "5,1,3,2,4" non sumi potest. Inter eos, sumo e missione numeri sequentis "3,1,2,4,5" est: pone in numeris continue 1,2,3 -> sume numerum 3 e dextro -> sume numerum 1 e sinister -> sume numerum 2 a sinistro -> pone N. 4 in -> eximito N. 4 a sinistro -> pone in N. 5 -> eximito N. 5 a sinistro simplicitate utimur L ad repraesentandum ultrices e sinistro evulsum, et R ad repraesentandum ultrices e dextro sublatum.
Numeri in primo versu sunt pro numeris basketball, quos magister in ordine ponit;
Numeri in secunda linea adhibentur ut ultrices numeri reprimendi sint, si modo sumi possunt, ordine interposito;
Inter eos, numeri basketball commatibus separati sunt.
Ad remotionem cuiusque ultrices sequentiam, si quidem obtineri potest, placet sequentiam remotionem imprimere secundum operationes dextras et dextras;
speciali attentione items:
1. 1<=numerus ultrices, numerus basketball<=200;
2. Numeri in ultrices non repetunt;
3. LR in output eventus debet esse in auto;
intrare
4,5,6,7,0,1,2
6,4,0,1,2,5,7
output
RLRRRLL
Nota: Ordo ultrices sumendi est "dextra, sinistra, dextra, dextra, dextra, sinistra, sinistra"
intrare
4,5,6,7,0,1,2
6,0,5,1,2,4,7
Output:
NO
Descriptio: ultrices seriei respondentis sumi non potest
intrare
1,2,3,4
1,2,3,5
output
NO
Explicatio: Non est basketball numeratus 5, sic notitiae numeratae respondentes insanabiles esse non possunt.
C++ source code:
- #include <iostream>
- #include <sstream>
- #include <queue>
- #include <string>
- #include <vector>
-
- using namespace std;
-
- int main() {
- ios::sync_with_stdio(false);
- cin.tie(nullptr);
-
- queue<int> ball, get;
- deque<int> list;
- string input;
- getline(cin, input); // 获取第一行数据,篮球的放入顺序
- stringstream ss(input);
- string temp;
-
- while (getline(ss, temp, ',')) {
- ball.push(stoi(temp));
- }
-
- getline(cin, input); // 获取第二行数据,篮球的取出顺序
- ss.clear();
- ss.str(input);
- while (getline(ss, temp, ',')) {
- get.push(stoi(temp));
- }
-
- int ballNum = 0; // 统计输入的字符串中篮球编号的个数
- for (int i = 0; i < input.size(); i++)
- {
- if (input[i] != ',') {
- ballNum++;
- }
- }
-
- string direction; // 对篮球的取出顺序进行记录
- while (!get.empty()) {
- if (list.empty() && !ball.empty()) {
- list.push_back(ball.front());
- ball.pop();
- }
- if (list.empty()) {
- break;
- }
- int tempL = list.front(), tempR = list.back();
- int temp = get.front();
- if (temp == tempL) {
- get.pop();
- list.pop_front();
- direction = direction + 'L';
- }
- else if (temp == tempR) {
- get.pop();
- list.pop_back();
- direction = direction + 'R';
- }
- else {
- if (ball.empty()) {
- break;
- }
- list.push_back(ball.front());
- ball.pop();
- }
- }
-
- // 输出取出顺序
- if (ballNum == direction.size()) {
- cout << direction << endl;
- }
- else {
- cout << "NO" << endl;
- }
-
- system("pause");
- return 0;
- }