}
}
voidmain(){
intA[MaxSize],B[MaxSize],A_len,B_len,n,i;
cin>>n;
while(n--){
cin>>A_len;
for(i=0;i>A[i];}
cin>>B_len;
for(i=0;i>B[i];}
combine(A,A_len,B,B_len);
}
}
9004:
连续删除
ProblemDescription
从由小到大有序的顺序表中删除其值在[s,t]之间(含s和t)的所有元素,且不改变顺序表的有序性。
如果s>=t则显示“dataerror”;否则输出顺序表的表长和顺序表中的元素,若处理后的顺序表为空,则不输出任何信息。
Input
输入的第一行为一个数字n,表示下面有n组数据,每组数据包括3行;每组数据中的第一行包含两个数字s和t,第二行为顺序表的表长len(0 Output
对于每组数据,如果s>=t,则直接输出“dataerror”,否则输出两行信息:
第一行为处理后顺序表的表长,第二行为处理后顺序表中的元素,元素之间用一个空格分隔,如果处理后的顺序表为空,则不输出任何信息。
SampleInput
1
818
7
13510171925
SampleOutput
5
1351925
//9004ANSWERCODE1
#include
usingnamespacestd;
intmain()
{
intn,s,t,len,A[21],i,s_i,t_i,j,span;
cin>>n;
while(n--){
cin>>s>>t>>len;
for(i=0;i>A[i];
if(s>=t||len<=0||len>20)
{cout<<"dataerror"<s_i=0;t_i=len-1;
while(A[s_i]
while(A[t_i]>t&&t_i>=0)t_i--;
if(s_i<=t_i)
{
span=t_i-s_i+1;
for(j=s_i;jlen-=span;
}
if(len!
=0)
{
cout<for(i=0;icout<}
}
return0;
}
9012:
找唯一数
ProblemDescription
在一个表长为n的顺序表中,除一个元素之外,其余的元素都出现了两次。
请找出这个仅出现一次的元素。
Input
有多组数据,每组第一行表示表长n(1<=n<=11111);第二行表示顺序表的各元素。
Output
输出这个唯一数。
SampleInput
5
22131
7
2113-123
SampleOutput
3
-1
//9012ANSWERCODE1
#include
usingnamespacestd;
intmain()
{
intn,i,j,A[11112],B[11112];
while(cin>>n)
{
if(n>=1&&n<=11111)
{
for(i=0;i>A[i];
for(i=0;ifor(i=0;i{for(j=i+1;j{if(A[i]==A[j]){B[i]=0;B[j]=0;break;}}
}
for(i=0;i{if(B[i]==1)cout<}
}
return