| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
TLE 是否说明 结果正确,只是时间上的不足?Source
Problem Id:1628 User Id:IceAngel
Memory:164K Time:1015MS
Language:C++ Result:Time Limit Exceed
Source
#include "iostream.h"
#include "string.h"
#include "stdlib.h"
#define max1 1100
#define max2 110
char graph1[max1][max2];
char graph2[max1][max2];
char map[max1][max2];
char flag[max1];
char str[max2];
int compare( const void * a , const void * b )
{
int x = (int)(*(char*)a);
int y = (int)(*(char*)b);
if( x >= (int)'A' && x <= (int)'Z' )
x += 40;
if( y >= (int)'A' && y <= (int)'Z' )
y += 40;
return x - y;
}
bool strSub( int i , int k )
{
int a , b;
bool f;
for( a = 0 ; a < (int)strlen( graph1[i] ) ; a++ )
{
f = false;
for( b = 0 ; b < (int)strlen( map[k] ) ; b++ )
if( graph1[i][a] == map[k][b] )
{
f = true;
}
if( !f )
return false;
}
return true;
}
void strAdd( int k , int i )
{
bool f;
int a , b , c = strlen( map[k] );
for( a = 0 ; a < (int)strlen( graph2[a] ) ; a++ )
{
f = true;
for( b = 0 ; b < c ; b++ )
{
if( graph2[i][a] == map[k][b] )
{
f = false;
break;
}
}
if( f )
{
map[k][c++] = graph2[i][a];
}
}
map[k][c] = 0;
}
int main()
{
bool breakFlag;
int m , n;
int i , k;
cin >> m >> n;
for( i = 0 ; i < m ; i++ )
cin >> graph1[i] >> str >> graph2[i];
for( i = 0 ; i < n ; i++ )
cin >> map[i];
for( k = 0 ; k < n ; k++ )
{
for( i = 0 ; i < m ; i++ )
flag[i] = 0;
do
{
breakFlag = true;
for( i = 0 ; i < m ; i++ )
{
if( strSub( i , k ) && flag[i] == 0 )
{
flag[i] = 1;
strAdd( k , i );
breakFlag = false;
}
}
}while( !breakFlag );
qsort( map[k] , strlen( map[k] ) , sizeof( char ) , compare );
cout<<map[k]<<endl;
}
return 0;
}
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator