poj 1318 Word Amalgamation
내가 시작한 방법은 디렉터리와sortDis를 처리하는 것이 아니라 매번 한 번씩 검색하는 것이다. 지금까지 나는 왜 틀렸는지 찾지 못했다...
다음 코드는 디렉터리와sortDis를 먼저 처리한 다음에 처리하기 쉽다
AC 코드:
#include <stdio.h>
#include <string.h>
#include <iostream>
#include <algorithm>
using namespace std;
char dictionary[102][10]; //1~100 , 1~6
char sortDic[102][10]; //
int dicNum; //
int main()
{
//freopen("test.txt","r",stdin);
char tmp[7];
int i;
// , 0 ok
for(i=0; ;i++)
{
scanf("%s",tmp);
if(strcmp(tmp,"XXXXXX")==0)
break;
strcpy(dictionary[i],tmp);
}
dicNum=i;
// dictionary sortDic
int j;
for(i=0;i<dicNum;i++)
for(j=0;j<dicNum;j++)
if(strcmp(dictionary[i],dictionary[j])<0)
{
strcpy(tmp,dictionary[j]);
strcpy(dictionary[j],dictionary[i]);
strcpy(dictionary[i],tmp);
}//
//test
/*for(i=0;i<dicNum;i++)
printf("%s
",dictionary[i]);*/
for(i=0;i<dicNum;i++) // sortDic
{
strcpy(sortDic[i],dictionary[i]);
sort(sortDic[i],sortDic[i]+strlen(sortDic[i]));
}
//
while(scanf("%s",tmp))
{
if(strcmp(tmp,"XXXXXX")==0)
return 0;
sort(tmp,tmp+strlen(tmp));
int count=0;
for(i=0;i<dicNum;i++)
if(strcmp(tmp,sortDic[i])==0) //
{
printf("%s
",dictionary[i]);
count++;
}
if(count==0)
{
printf("NOT A VALID WORD
");
printf("******
");
continue;
}
printf("******
");
}
return 0;
}
항상 WA 코드:
#include <stdio.h>
#include <string.h>
#include <iostream>
#include <algorithm>
using namespace std;
char dictionary[102][7]; //1~100 , 1~6
char sortDic[102][7]; //
int dicNum; //
int flag[102];
int main()
{
//freopen("test.txt","r",stdin);
char tmp[7];
int i;
// , 1 ok
for(i=1; ;i++)
{
scanf("%s",tmp);
if(strcmp(tmp,"XXXXXX")==0)
break;
strcpy(dictionary[i],tmp);
strcpy(sortDic[i],tmp);
sort(sortDic[i],sortDic[i]+strlen(tmp));
}
dicNum=i-1;
//test
/*for(i=1;i<=dicNum;i++)
printf("%s
",dictionary[i]);*/
//test
/*for(i=1;i<=dicNum;i++)
printf("%s
",sortDic[i]);*/
//
while(scanf("%s",tmp))
{
if(strcmp(tmp,"XXXXXX")==0)
return 0;
//init flag
memset(flag,0,sizeof(flag));
sort(tmp,tmp+strlen(tmp));
int count=0;
for(i=1;i<=dicNum;i++)
if(strcmp(tmp,sortDic[i])==0) //
{
flag[i]=1;
count++;
}
if(count==0)
{
printf("NOT A VALID WORD
");
printf("******
");
continue;
}
//
int pos=1;
while(1)
{
strcpy(tmp,"zzzzzz");
//tmp
for(i=1;i<=dicNum;i++)
{
if(flag[i]==1 && strcmp(tmp,dictionary[i])>0) //tmp
{
strcpy(tmp,dictionary[i]);
pos=i;
}
}
if(count==0)
break;
else
{
printf("%s
",tmp);
count--;
flag[pos]=0; //
}
}
printf("******
");
}
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.