问题:
有两个序列,分别有n,和m个字符串(m, n <= 20)
有q次查询,每次查询一个整数cnt(cnt <= 1e5)
对于每次查询,分别取出第一个序列中第cnt个字符串和第二个序列中的字符串,
组合到一起输出。
如果cnt > n,m
跳到序列的首部分继续数。
分析:
如题意....
#include <iostream>
#include <string>
using namespace std;
const int MAXN = 20+1;
string s1[MAXN], s2[MAXN];
int main()
{
string L, R;
int n, m, q, cnt;
cin >> n >> m;
for (int i = 0; i < n; i++)
cin >> s1[i];
for (int i = 0; i < m; i++)
cin >> s2[i];
cin >> q;
while (q--)
{
cin >> cnt;
L = (cnt%n == 0) ? s1[n-1] : s1[cnt % n - 1];
R = (cnt%m == 0) ? s2[m-1] : s2[cnt % m - 1];
cout << L + R << endl;
}
}
Comments | 1 条评论
测试一下评论系统