⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 487-3279.cpp

📁 此源代码为北京大学ACM练习网站第1002题代码
💻 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 + -