您的位置:首页 > 其它

田忌

2015-10-25 11:36 471 查看
#include <stdio.h>
#include <limits.h>

int N;
int a[101];
int b[101];
int Answer;
void sort()
{
int i,j,tmp;
for(i = 1; i <= N; i++)
{
for(j = i+1; j <= N; j++)
{
if(a[i] < a[j])
{
tmp = a[i];
a[i] = a[j];
a[j] = tmp;
}
if(b[i] < b[j])
{
tmp = b[i];
b[i] = b[j];
b[j] = tmp;
}
}
}
}

int getnum()
{
int start1, end1, start2, end2, i, j,sum;
end1 = end2 = N;
start1 = start2 = 1;
sum = 0;
while(a[end1] > b[end2] && end1 >= 1)
{
sum += 2;
end1 --;
end2 --;
}
while(start1 <= end1)
{
if(a[start1] > b[start2])
{
sum += 2;
start1++;
start2++;
}
else if(a[start1] < b[start2])
{
end1--;
start2++;
}
else
{
if(a[end1] > b[start2])
{
sum += 2;
}
else if(a[end1] == b[start2])
{
sum += 1;
}
end1--;
start2++;

}
}
return sum;
}
int main(void)
{
int test_case;
int T;
setbuf(stdout, NULL);

scanf("%d", &T);
for(test_case = 0; test_case < T; test_case++)
{
int i;
scanf("%d", &N);
for(i=1;i<=N;i++)
{
scanf("%d", &a[i]);
}
for(i=1;i<=N;i++)
{
scanf("%d", &b[i]);
}
sort();
Answer = getnum();
printf("Case #%d\n", test_case+1);
printf("%d\n", Answer);
}

return 0;//Your program should return 0 on normal termination.
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  贪婪