3142161_tle.cpp

来自「部分PKU上的源码」· C++ 代码 · 共 50 行

CPP
50
字号
#include<iostream.h>
int input[100000][2];
void read(char * p,int t)
{int i=0,j=0;
while(i<7)
{if(*(p+j)=='-') j++;
 else  if(*(p+j)>='0'&&*(p+j)<='9') input[t][0]*=10,input[t][0]+=*(p+j)-'0',j++,i++;
 else if(*(p+j)>='A'&&*(p+j)<='C') input[t][0]*=10,input[t][0]+=2,j++,i++;
 else  if(*(p+j)>='D'&&*(p+j)<='F') input[t][0]*=10,input[t][0]+=3,j++,i++;
 else  if(*(p+j)>='G'&&*(p+j)<='I') input[t][0]*=10,input[t][0]+=4,j++,i++;
 else  if(*(p+j)>='J'&&*(p+j)<='L') input[t][0]*=10,input[t][0]+=5,j++,i++;
 else  if(*(p+j)>='M'&&*(p+j)<='O') input[t][0]*=10,input[t][0]+=6,j++,i++;
 else  if(*(p+j)>='P'&&*(p+j)<='S') input[t][0]*=10,input[t][0]+=7,j++,i++;
 else  if(*(p+j)>='T'&&*(p+j)<='V') input[t][0]*=10,input[t][0]+=8,j++,i++;
 else  if(*(p+j)>='W'&&*(p+j)<='Y') input[t][0]*=10,input[t][0]+=9,j++,i++;
}
}
void bubble(int size)
{int i,temp,work;
for(int pass=0;pass<size;pass++)
{work=1;
   for(i=0;i<size-pass;i++)
     if(input[i][0]>input[i+1][0]) {temp=input[i][0];input[i][0]=input[i+1][0];input[i+1][0]=temp;work=0;}
   if(work) break;
}
}
void search(int m)
{int i=m-1;
while((input[i][0]!=input[m][0])&&i>=0) {i--;}
if(i>=0) input[i][1]+=input[m][1],input[m][1]=0;
}
int main ()
{int t,i,o,k;
char *p=new char[100];
cin>>t;
for(i=0;i<t;i++) 
{cin>>p;
input[i][0]=0;
input[i][1]=1;
read(p,i);} 
bubble(t-1);
for(i=t;i>=0;i--) search(i);
for(i=0;i<t;i++) 
{if(input[i][1]>1) 
{o=input[i][0]/10000;
k=input[i][0]%10000;
cout<<o<<'-'<<k<<" "<<input[i][1]<<endl;}}
return 1;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?