33,321
社区成员




# include <stdio.h>
# include <malloc.h> // malloc在stdlib.h中声明
int main()
{
int *a, *b, *c;
int d[100] = { -1 }; // 除了第0个元素是-1,其他元素都是0;另外题目也没有100的限制,也没有正负数的限制
int i, j, k, l, h, g, e, f, y, temp; // 到后面就基本不知道哪个变量是干什么的了
scanf("%d", &l);
for (i = 0; i < l; i++)
{
scanf("%d%d%d", &g, &e, &f);
y = 0;
a = (int *)malloc(g * sizeof(int));
b = (int *)malloc(g * sizeof(int)); // g应该是e
c = (int *)malloc(g * sizeof(int)); // g应该是f
for (j = 0; j < g; j++)
scanf("%d", &a[j]);
for (k = 0; k < e; k++)
scanf("%d", &b[j]);
for (h = 0; h < f; h++)
scanf("%d", &c[h]);
for (j = 0; j < g; j++)
for (k = 0; k < e; k++)
for (h = 0; h < f; h++) // 注意如果维度较大,三重循环(a * b * c)就是较大的循环次数,可能会超时
if(a[j] == b[k] == c[h]) // 这里应该写成a[j] == b[k] && b[k] == c[h]
{
d[y] = a[j];
y++;
}
y--;
for (j = 0; j < y - 1; j++) // 想做冒泡排序?
{
k = j;
for (h = j + 1; h < y; h++)
if (d[k] > d[h])
k = h;
if (j != k)
{
temp = d[j];
d[j] = d[k];
d[k] = temp;
}
}
printf("case #%d:\n", i);
for (j = 0; j < y - 1; j++)
printf("%d ", d[j]);
printf("%d\n", d[j]);
}
return 0;
}
# include <iostream>
# include <vector>
# include <set>
# include <algorithm>
using namespace std;
int main()
{
int n;
cin >> n;
for (int i = 0; i < n; i++)
{
int a, b, c, tmp;
cin >> a >> b >> c;
vector<int> va, vb, vc;
for (int j = 0; j < a; j++)
{
cin >> tmp;
va.push_back(tmp);
}
for (int j = 0; j < b; j++)
{
cin >> tmp;
vb.push_back(tmp);
}
for (int j = 0; j < c; j++)
{
cin >> tmp;
vc.push_back(tmp);
}
set<int>
sa(va.begin(), va.end()),
sb(vb.begin(), vb.end()),
sc(vc.begin(), vc.end());
vector<int> vtmp, vtmp1;
set_intersection(
sa.begin(), sa.end(),
sb.begin(), sb.end(),
back_inserter(vtmp));
set_intersection(
sc.begin(), sc.end(),
vtmp.begin(), vtmp.end(),
back_inserter(vtmp1));
cout << "case #" << i << ':' << endl;
if (vtmp1.empty())
cout << -1 << endl;
else
{
cout << vtmp1[0];
for (size_t j = 1; j < vtmp1.size(); j++)
cout << ' ' << vtmp1[j];
cout << endl;
}
}
return 0;
}