Sicily 1396. Q

1396. Q

Constraints

Time Limit: 1 secs, Memory Limit: 32 MB

Description

You've got a queue. And you just got to mess with it. 
Given a queue of items and a series of queue operations, return the resulting queue. 
Queue operations are defined as follows: 
starting-position to requested-position
meaning one wants the item at the starting position to be moved to the requested position. So if the queue of
items were: 
Item1 Item2 Item3 Item4 Item5
(Item1 being in position 1, Item2 in position 2, etc.) 
after applying the queue operation: 
5 to 2 
the resulting queue would be: 
Item1 Item5 Item2 Item3 Item4
as Item5 (the item in position 5) was moved to position 2. Multiple queue operations are applied at the same
time, however; e.g., given the queue of items: 
Item1 Item2 Item3 Item4 Item5 Item6 Item7 Item8
If the following queue operations were applied: 
2 to 6; 6 to 3; 4 to 5; 5 to 2; 7 to 4; 8 to 1
then the resulting queue would be: 
Item8 Item5 Item6 Item7 Item4 Item2 Item1 Item3
As you can see, the queue operations are strictly enforced, with other items (not involved in queue
operations) maintaining their order and moving to vacant positions in the queue. Note that no two queue
operations will have the same starting-position or same requested-position defined.

Input

Input to this problem will begin with a line containing a single integer x indicating the number of datasets.
Each data set consists of three components:
1.  Start line –  single line, "m n" (1 <= m, n <= 20) where m indicates the number of items in the
queue and n indicates the number of queue operations.
2.  Queue items –  line of short (between 1 and 8 characters) alphanumeric names for the items in the
queue. Names are unique for a given data set and contain no whitespace.
3.  Queue operations –n lines of queue operations in the format "starting-position requested-
position".

Output

For each dataset, output the queue after the queue operations have been applied. Print the elements of the
queue on a single line, starting from the first and ending with the last, with a single space separating each
item.

Sample Input

3
5 1
alpha beta gamma delta epsilon
5 2
8 6
a b c d e f g h
2 6
6 3
4 5
5 2
7 4
8 1
3 2
foo bar baz
3 1
1 3

Sample Output

alpha epsilon beta gamma delta
h e f g d b a c
baz bar foo

刚开始一直没有读懂题意,后来才知道,原来意思是说新开一个队列,将原队列i位置上的元素移到新队列j位置上,所以才说不会有相同的开始位置或相同的目标位置。。。

直接开一个来放就好了,剩下没放的按顺序放在空位上就行

#include <stdio.h>
#include <string.h>
int main() {
    int case_num;
    scanf("%d", &case_num);
    while (case_num--) {
        int m, n;
        scanf("%d%d", &m, &n);
        char from[20][9], to[20][9];
        bool used[20];
        int from_pos, to_pos;
        for (int i = 0; i < m; i++) {
            scanf("%s", from[i]);
            used[i] = false;
            to[i][0] = '\0';
        }
        while (n--) {
            scanf("%d%d", &from_pos, &to_pos);
            strcpy(to[to_pos - 1], from[from_pos - 1]);
            used[from_pos - 1] = true;
        }
        for (int i = 0, j = 0; i < m; i++) {
            if (!used[i]) {
                for (; j < m; j++) {
                    if (to[j][0] == '\0') {
                        strcpy(to[j], from[i]);
                        j++;
                        break;
                    }
                }
            }
        }
        for (int i = 0; i < m; i++) {
            if (i) {
                printf(" ");
            }
            printf("%s", to[i]);
        }
        printf("\n");
    }
    return 0;
}


weixin073智慧旅游平台开发微信小程序+ssm后端毕业源码案例设计 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
python017基于Python贫困生资助管理系统带vue前后端分离毕业源码案例设计 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值