| ||||||||||
| 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 | |||||||||
Re:求指点,提交后显示Wrong Answer!!!In Reply To:求指点,提交后显示Wrong Answer!!! Posted by:sangyongjia at 2014-06-17 22:41:17 > #include"stdio.h"
> #define LENGTH 50
>
> void adjust_heap(int *input, int root, int size)
> {
> int swap=0;
> int left=2*root+1;
> int right=2*root+2;
> int largest=root;
> while(root<size)
> {
> if((left<size) || (right<size))
> {
> if((left<size) && (input[largest]<input[left]))
> {
> largest=left;
> }
> if((right<size) && (input[largest]<input[right]))
> {
> largest=right;
> }
> }
> if(largest!=root)
> {
> swap=input[largest];
> input[largest]=input[root];
> input[root]=swap;
>
> left=2*largest+1;
> right=2*largest+2;
> root=largest;
> }
> else
> {
> break;
> }
> }
> }
>
> void build_maxheap(int *input,int size)
> {
> int i=0;
> int lastend_root=size/2-1;
> for(i=lastend_root;i>=0;i--)
> {
> adjust_heap(input,i,size);
> }
> }
>
> void heap_sort(int *input,int size)
> {
> int swap=0;
> build_maxheap(input,size);
>
> while(size>1)
> {
> swap=input[0];
> input[0]=input[size-1];
> input[size-1]=swap;
> size--;
> adjust_heap(input,0,size);
> }
> }
>
> void main()
> {
> int n=0;
> int temp=0;
> int count=0;
> char printed=0;
> int i=0,j=0;
> char input[LENGTH];
> int mid_output[100000]={0};
>
> int map_table[100];
> map_table['0']=0;
> map_table['1']=1;
> map_table['2']=map_table['A']=map_table['B']=map_table['C']=2;
> map_table['3']=map_table['D']=map_table['E']=map_table['F']=3;
> map_table['4']=map_table['G']=map_table['H']=map_table['I']=4;
> map_table['5']=map_table['J']=map_table['K']=map_table['L']=5;
> map_table['6']=map_table['M']=map_table['N']=map_table['O']=6;
> map_table['7']=map_table['P']=map_table['R']=map_table['S']=7;
> map_table['8']=map_table['T']=map_table['U']=map_table['V']=8;
> map_table['9']=map_table['W']=map_table['X']=map_table['Y']=9;
>
> scanf("%d",&n);
> for(i=0; i<n; i++)
> {
> scanf("%s",input);
> j=0;
> while(input[j])
> {
> if(((input[j]>='0') && (input[j]<='9')) || ((input[j]>='A') && (input[j]<='Z')))
> {
> mid_output[i]=10*mid_output[i]+map_table[input[j]];
> j++;
> }
> else
> {
> j++;
> }
> }
> }
> heap_sort(mid_output,n);
> for(i=0;i<n;i++)
> {
> printf("%d ",mid_output[i]);
> }
>
> for(i=0;i<n;)
> {
> temp=mid_output[i];
> while(temp==mid_output[i])
> {
> count++;
> i++;
> }
> if(count>=2)
> {
> printf("%d-",temp/10000);
> printf("%d %d\n",temp%10000,count);
> printed=1;
> count=0;
> }
> else
> {
> count=0;
> }
> }
>
> if(0==printed)
> {
> printf("No duplicates\n");
> }
> }
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator