大水题
读入一个字符串,把它转化成一个1e7内的数,如有重复输出这个数和次数
#include<cstdio> #include<cstring> using namespace std; const int N=10000005; int n,l,u; char s[233]; int cnt[N]; void write(int x) { int q=x/10000; if(q<100) putchar('0'); if(q<10) putchar('0'); printf("%d-",q); q=x%10000; if(q<1000) putchar('0'); if(q<100) putchar('0'); if(q<10) putchar('0'); printf("%d",q); } int main() { while(~scanf("%d",&n)) { for(int i=1;i<=n;i++) { scanf("%s",s); l=strlen(s); u=0; for(int i=0;i<l;i++) { if(s[i]=='-') continue; u=u*10; if(s[i]>='0'&&s[i]<='9') { u+=s[i]-'0'; continue; } u++; u+=(s[i]>='A')+(s[i]>='D')+(s[i]>='G')+(s[i]>='J')+(s[i]>='M')+(s[i]>='P') +(s[i]>='T')+(s[i]>='W'); } cnt[u]++; // printf("%s->%d ",s,u); } int fuck_you=0; for(int i=0;i<10000000;i++) { if(cnt[i]>=2) write(i),printf(" %d ",cnt[i]),fuck_you++; cnt[i]=0; } if(!fuck_you) puts("No duplicates."); } return 0; }