| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
要出人命了,我都测试了n组数据了,为什么还老说我wa,谁帮我看看啊,#include <iostream>
#include <cstring>
using namespace std;
struct DNA
{
char *str;
int sort_value;
};
int BinaryCode(DNA *dna,int loop,int i)
{
int binaryflag = 0;
if(dna[loop].str[i]=='A') binaryflag = 8;
if(dna[loop].str[i]=='C') binaryflag = 4;
if(dna[loop].str[i]=='G') binaryflag = 2;
if(dna[loop].str[i]=='T') binaryflag = 1;
return binaryflag;
}
int CalculateUnsortedness(DNA *dna,int loop,int bit_value)
{
int unsortedness = 0;
for(int i=bit_value-1;i>0;i--)
{
int binaryflag1 =BinaryCode(dna,loop,i);
for(int j=i-1;j>=0;j--)
{
int binaryflag2 = BinaryCode(dna,loop,j);
if(dna[loop].str[i]<dna[loop].str[j]&&(binaryflag1&binaryflag2)==0)
{
binaryflag1 +=binaryflag2;
unsortedness++;
}
}
}
dna[loop].sort_value = unsortedness;
return 0;
}
int Sort(DNA *dna,int list_count,int bit_value)
{
int i,j;
DNA temp;
temp.str = new char[bit_value];
for(i=1;i<list_count;i++)
{
temp.sort_value = dna[i].sort_value;
strncpy(temp.str,dna[i].str,bit_value);
j = i -1;
while(temp.sort_value<dna[j].sort_value)
{
dna[j+1].sort_value = dna[j].sort_value;
strncpy(dna[j+1].str,dna[j].str,bit_value);
j--;
dna[j+1].sort_value = temp.sort_value;
strncpy(dna[j+1].str,temp.str,bit_value);
if(j<0) break;
}
}
delete [] temp.str;
return 0;
}
int main(void)
{
int bit_value,list_count;
while(cin>>bit_value>>list_count)
{
DNA *dna = new DNA[list_count];
for(int loop=0;loop<list_count;loop++)
{
dna[loop].str = new char[bit_value+1];
memset(dna[loop].str,0,(bit_value+1)*sizeof(char));
}
char buff[100];
int iloop=0;
while(iloop<list_count)
{
memset(buff,0,sizeof(buff));
cin>>buff;
strncpy(dna[iloop].str,buff,bit_value);
CalculateUnsortedness(dna,iloop,bit_value);
iloop++;
}
Sort(dna,list_count,bit_value);
for(int loop=0;loop<list_count;loop++)
{
cout<<dna[loop].str<<endl;
}
for(int loop=0;loop<list_count;loop++)
{
delete [] dna[loop].str;
}
delete [] dna;
}
return 0;
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator