还是今天的那一道题,不过我知道问题出在哪里了。
题目:
代码:
#include<cstdio>
#include<algorithm>
using namespace std;
struct node {
int a;
int b;
};
bool cmp(struct node a,struct node b)
{
return a.a<b.a;
}
main()
{
struct node shi[220],hu;
int sum;
int t=0;
int x,y;
int i,j;
int n;
scanf("%d",&t);
for(;t>0;t--)
{
sum=0;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d%d",&shi[i].a,&shi[i].b);
if(shi[i].a>shi[i].b)
{
hu.a=shi[i].a;
shi[i].a=shi[i].b;
shi[i].b=hu.a;
}
}
sort(shi,shi+n,cmp);
while(n)
{
x=shi[0].a;
y=shi[0].b;
for(j=0;j<n-1;j++)
{
shi[j]=shi[j+1];
}
n--;
for(i=0;i<n;i++)
{
if(y%2==0&&y<shi[i].a)
{
x=shi[i].a;
y=shi[i].b;
for(j=i;j<n-1;j++)
{
shi[j]=shi[j+1];
}
n--;
i--;
}
else
{
if(y%2!=0&&y<shi[i].a-1)
{
x=shi[i].a;
y=shi[i].b;
for(j=i;j<n-1;j++)
{
shi[j]=shi[j+1];
}
n--;
i--;
}
}
}
sum++;
}
sum=sum*10;
printf("%d\n",sum);
}
}
这个代码比上一个只是多了一个判断y为奇数时shi[i].a是不是比它大二,否则仍然有重复部分。