您的位置:首页 > 运维架构 > Shell

UVa 10152 - ShellSort

2013-07-29 10:36 330 查看
/*
栈操作
*/
#include <cstdio>
#include <cstring>
#include <cctype>
#include <algorithm>
using namespace std;
const int MAX_NAME = 84;
const int MAXN = 204;
char name[MAXN][MAX_NAME];
char buff[MAX_NAME];
int init[MAXN];
int order[MAXN];
int n;

int get_hash(char *s)
{
int sum = 0;
while(*s) {
sum = sum*343 + *s;
s++;
}
return sum;
}

int get_idx(int v)
{
for(int i=0; i<n; i++) {
if(v == init[i]) return i;
}
printf("error!\n");
return -1;
}

int main() {
#ifndef ONLINE_JUDGE
freopen("in.txt", "r", stdin);
#endif
int T;
scanf("%d", &T);
while(T--) {
scanf("%d\n", &n);
for(int i=n-1; i>=0; i--) {
gets(name[i]);
init[i] = get_hash(name[i]);
}
for(int i=n-1; i>=0; i--) {
gets(buff);
order[i] = get_idx( get_hash(buff) );
}
int last=-1, cur;
for(int i=0; i<n; i++) {
cur = order[i];
if(cur < last) {
puts(name[cur]);
last = n;
} else {
last = cur;
}
}
printf("\n");
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: