2009-01-10 20:47:40來源不明
ACM 10062 Tell me the frequencies!
這題我採用暴力法!因為我不知道它的ASCII碼最大為多少,所以我先設到256就好。
/******************************************************/
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
main()
{
char input[1001];
int b,c,n;
while(gets(input)!=0)
{
int a[257]={0}; n=strlen(input);
for(b=0;b<n;b++) /*判斷並存入int陣列中*/
{
a[input[b]]=a[input[b]]+1; /*個數的累加*/
}
for(b=1;b<n;b++) /*從各數小*/
{
for(c=256;c>=0;c--) /*ASCII大的*/
{
if(a[c]==b)
printf("%d %d\n",c,b);
}
}
printf("\n");
}
return 0;
}
路人
2009-12-17 19:50:48
一樣是WA
ASCII最大其實才12X
所以可能有地方沒注意到喔
Xatier
2009-06-25 15:11:22
幫忙測試一下 ? 2009-06-25 17:39:47
這個Code送到Uva會WA喔~~
版主回應
修改成256呢? 會過嗎?幫忙測試一下 ? 2009-06-25 17:39:47
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<iostream>
using namespace std;
int main()
{
char input[1001];
int b,c,n;
int blank = 0;
while(gets(input)!=0)
{
if( blank )
printf( "\n" );
int a[257]={0}; n=strlen(input);
for(b=0;b<n;b++)
{
a[input[b]]=a[input[b]]+1;
}
for(b=1;b<n;b++)
{
for(c=256;c>=0;c--)
{
if(a[c]==b)
printf("%d %d\n",c,b);
}
}
blank = 1;
}
return 0;
}