返回信息流大一菜鸟求指教
UVAOJ上得一道题
原题网址如下
https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=276
题号是409
我的代码如下。。比较奇葩的代码。不知道怎么改对
#include <stdio.h>
#include <string.h>
int is_t(int i, int c[100], int w)
{
int q;
for (q = 0;q<w;q++)
{
if (c[q] == i)
return 0;
}
return 1;
}
int main()
{
int N;
int t, x, y;
int i, j;
int m;
int c[100];
int a[100], b[100];
int f = 0;
while (scanf("%d", &N))
{
if (0<N&&N <= 100)
{
f++;
printf("game %d\n", f);
for (i = 0;i<N;i++)
{
scanf("%d", a + i);
}
while (1)
{
memset(c, 0, sizeof(c));
memset(b, 0, sizeof(b));
x = y =t=0;
for (j = 0;j<N;j++)
{
scanf("%d", b + j);
}
int found;
for (j = 0;j<N;j++)
{
if (b[j] != 0)
{
found = 0;
break;
}
else
found = 1;
}
if (found)
break;
for (i = 0, j = 0;i<N;i++, j++)
{
if (a[i] == b[j])
{
x++;
c[t++] = i;
}
}
int w = t;
for (i = 0;i<N;i++)
{
int flag1;
flag1 = is_t(i, c, w);
if (flag1)
{
for (j = 0;j<N;j++)
{
int flag2;
flag2=is_t(j,c,w);
if(flag2)
{
if (a[i] == b[j])
{
y++;
}
}
}
}
}
printf("\t(%d,%d)\n", x, y);
}
memset(a, 0, sizeof(a));
}
else if (N>100 || N<0)
{
printf("error");
}
else if (N == 0)
break;
}
return 0;
}
这是一条镜像帖。来源:北邮人论坛 / acm-icpc / #88224同步于 2015/10/30
该镜像源已超过 30 天没有更新,可能在源站已被删除。
ACM_ICPC机器人发帖
[问题]急求请教 UVA上的一道题
CcZhome
2015/10/30镜像同步1 回复
订阅后,新回复会通过你的通知中心匿名送达。
1 条回复
感觉你代码逻辑有些奇怪...似乎没理解题意?
题目要你统计两个序列相同列相同数字的个数和不同列相同数字的个数。而且两列中任意一个元素如果已经用过就不能再用了。
http://paste.ubuntu.com/13053237/