HDOJ 1051
第一次Wrong Answer:
#include <cstdio>
#include <iostream>
#include <cstring>
using namespace std;
struct st
{
int l;
int w;
};
void sequencel(int n,st *a)
{
int temp;
for(int i=0;i<n;i++)
for(int j=i+1;j<n;j++)
if(a[i].l>a[j].l)
{
temp=a[i].l;
a[i].l=a[j].l;
a[j].l=temp;
temp=a[i].w;
a[i].w=a[j].w;
a[j].w=temp;
}
}
void sequencew(int n,st *a)
{
int temp;
for(int i=0;i<n;i++)
for(int j=i+1;j<n;j++)
if(a[i].w>a[j].w)
{
temp=a[i].w;
a[i].w=a[j].w;
a[j].w=temp;
temp=a[i].l;
a[i].l=a[j].l;
a[j].l=temp;
}
}
int cacul(int n,st *a)
{
int s=1;
for(int i=0;i<n-1;i++)
if(a[i].w>a[i+1].w)
s++;
return (s);
}
int cacuw(int n,st *a)
{
int q=1;
for(int i=0;i<n-1;i++)
if(a[i].l>a[i+1].l)
q++;
return (q);
}
int main(void)
{
freopen("in.txt","r",stdin);
int N;
scanf("%d",&N);
while(N--)
{
int n,s,q;
st a[5001],*p;
p=a;
scanf("%d",&n);
for(int i=0;i<n;i++)
scanf("%d%d",&a[i].l,&a[i].w);
sequencel(n,p);
s=cacul(n,p);
sequencew(n,p);
q=cacuw(n,p);
if(s<q)
printf("%d\n",s);
else
printf("%d\n",q);
}
fclose(stdin);
return 0;
}