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 ",s);
else
printf("%d ",q);
}

fclose(stdin);
return 0;
}

原文地址:https://www.cnblogs.com/phaLQ/p/9349373.html