📄 487-3279.cpp
字号:
#include<iostream>
#include<sstream>
#include<math.h>
using namespace std;
int convert(const char* str){
int n=0,j,s,i=6;
for(j=0;j<strlen(str);j++){
s=str[j];
if(s>47&&s<58){n+=(s-48)*(int)pow(10.0,i);i--;}
else if(s>64&&90){n+=(int)((s-58)/3.14)*(int)pow(10.0,i);i--;}
}
return n;
}
void printer(int i){
int j=i/1000000;
cout<<j;
i-=j*1000000;
j=i/100000;
cout<<j;
i-=j*100000;
j=i/10000;
cout<<j;
i-=j*10000;
cout<<"-";
j=i/1000;
cout<<j;
i-=j*1000;
j=i/100;
cout<<j;
i-=j*100;
j=i/10;
cout<<j;
i-=j*10;
cout<<i;
}
// 用ostringstream 很耗内存的
void counter(int A[],int n){
int i,j=1;
bool exist=false;
for(i=0;i<n-1;i++){
if(A[i]==A[i+1])j++;
else if(j>1){
printer(A[i]);
cout<<" "<<j<<endl;
exist=true;
j=1;
}
}
if(A[i]==A[i-1]){printer(A[i]);cout<<" "<<j<<endl;exist=true;}
if(exist==false)cout<<"No duplicates."<<endl;
}
void swap(int A[],int i,int j){
int temp=A[i];
A[i]=A[j];
A[j]=temp;
}
int partition(int A[],int l,int r,int& pivot){
do{
while(A[++l]<pivot);
while((r!=0)&&(A[--r]>pivot));
swap(A,l,r);
}while(l<r);
swap(A,l,r);
return l;
}
void qsort(int A[],int i,int j){
if(j<=i)return;
int pivotindex=(i+j)/2;
swap(A,pivotindex,j);
int k=partition(A,i-1,j,A[j]);
swap(A,k,j);
qsort(A,i,k-1);
qsort(A,k+1,j);
}
int main(){
string strs;
int A[100000],cases;
cin>>cases;
int n=cases;
while(cases>0){
cin>>strs;
const char* str=strs.c_str();
A[cases-1]=convert(str);
cases--;
}
qsort(A,0,n-1);
counter(A,n);
cin>>strs;
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -