NC212910. 组队分配
描述
输入描述
数据的第一行有一个t,代表t组数据
每组数据的第一行有一个n,代表题目中的n。
接下来的3n行,每一行由一个字符串s和一个数字a组成,s和a由一个空格隔开,保证字符串中不含有空格。
输出描述
输出n行,每行按照“队名 队员一姓名 队员二姓名 队员三姓名”的格式输出,行末无多余空格。
示例1
输入:
1 1 a 1 b 3 c 2
输出:
ACM-0 b c a
C++(clang++11) 解法, 执行用时: 234ms, 内存消耗: 18612K, 提交时间: 2020-11-11 16:21:57
#include<iostream> #include<cstring> using namespace std; int t,n,a; string mp[500005],x; int main(){ cin>>t; while(t--){ cin>>n; for(int i=0;i<3*n;++i){ cin>>x>>a; mp[a]=x; } for(int i=0;i<n;++i){ cout<<"ACM-"<<i<<" "<<mp[3*i+3]<<' '<<mp[3*i+2]<<' '<<mp[3*i+1]<<endl; } } return 0; }
Python3 解法, 执行用时: 485ms, 内存消耗: 24808K, 提交时间: 2021-10-11 19:31:38
t=int(input()) for i in range(t): n=int(input()) lb={} for i in range(3*n): s,a=map(str,input().split()) lb[int(a)]=s for a in range(n): print("ACM-{0}".format(a),lb[3*a+3],lb[3*a+2],lb[3*a+1])