讨论 / 为啥只有40分呢?[color=red][悬赏:¥0.00][/color]
李山山 2008-11-14 01:09:00
点我顶贴 收藏 删除
查看状态 Show Status

状态题目:排队

题目编号:78-排队 查看该题

状态: Unaccepted

测评机: Xeond[6]

得分: 40分

提交日期: 2008-11-12 23:06:00

有效耗时: 499毫秒

测试结果1: 通过本测试点|有效耗时312:ms

测试结果2: 测试结果错误.错误结果为:ZGJKLPTY

ZGJKYTP

ZGJKYT

正确结果应为:ZGJKLPTY

ZGJKYTP

JGZYTP

测试结果3: 通过本测试点|有效耗时62:ms

测试结果4: 测试结果错误.错误结果为:ONMLKJIHGFEDCBA

ONMLKJIABCDEFG

ONMLKJIABCDEF

ONMLKJIABCDE

ONMLKJIABCD

ONMLKJIABC

ONMLKJIAB

正确结果应为:ONMLKJIHGFEDCBA

IJKLMNOGFEDCBA

IJKLMNOABCDEF

NMLKJIABCDEF

NMLKJIFEDCB

JKLMNFEDCB

KLMNFEDCB

测试结果5: 测试结果错误.错误结果为:ABCDEFGHIJKLMNOPQRSTUVWXYZ

DCBAFGHIJKLMNOPQRSTUVWXYZ

DCBAFGHIJKLMNOPQRSTUVWXY

DCBAFGHIJKLMNOPQRSTUVWX

DCBAFGHIJKLMNXWVUTSRQP

DCBAFGHIJKLMNXWVUTSRQ

DCBAFGHIJKLMNXWVUTSR

DBAFGHIJKLMNXWVUTSR

DBAFGHIJKLMNXWVUTS

DBAFGHIJKLMNXWVUT

DBAFGHIJKLTUVWXN

DBAFGHIJKLTUVWX

DBAFGHIJKLTUVW

BAFGHIJKLTUVW

BAFGHIJKLTUV

BAFGHIJKLTU

BAFGHIJKLT

BAFGHIJKL

BAFGHIJK

BAFGHIJ

BAFGHI

BAFGH

BAFG

BAF

BA

B

正确结果应为:ABCDEFGHIJKLMNOPQRSTUVWXYZ

DCBAFGHIJKLMNOPQRSTUVWXYZ

DCBAFGHIJKLMNZYXWVUTSRQP

DBAFGHIJKLMNZYXWVUTSRQP

LKJIHGFABDNZYXWVUTSRQP

BAFGHIJKLNZYXWVUTSRQP

LKJIHGFABZYXWVUTSRQP

KJIHGFABZYXWVUTSRQP

KJIHGFABZYXWVUTPQR

KJIHGFABZYXWVUTRQ

GHIJKABZYXWVUTRQ

KJIHGBZYXWVUTRQ

HIJKBZYXWVUTRQ

IJKBZYXWVUTRQ

IJKBZYXWVUQR

ZBKJIXWVUQR

BKJIXWVUQR

IJKBWVUQR

KJIWVUQR

KJIWVUR

IJKVUR

JKVUR

KVUR

KVU

VU

V

测试结果6: 测试结果错误.错误结果为:ABCDEFG

ABCDGF

ABCDG

ABCD

正确结果应为:ABCDEFG

ABCDGF

BADGF

ABGF

测试结果7: 通过本测试点|有效耗时63:ms

测试结果8: 测试结果错误.错误结果为:ZGJKLPTY

ZGJKYTP

ZGJKYT

正确结果应为:ZGJKLPTY

ZGJKYTP

JGZYTP

测试结果9: 测试结果错误.错误结果为:ONMLKJIHGFEDCBA

ONMLKJIABCDEFG

ONMLKJIABCDEF

ONMLKJIABCDE

ONMLKJIABCD

ONMLKJIABC

ONMLKJIAB

正确结果应为:ONMLKJIHGFEDCBA

IJKLMNOGFEDCBA

IJKLMNOABCDEF

NMLKJIABCDEF

NMLKJIFEDCB

JKLMNFEDCB

KLMNFEDCB

测试结果10: 通过本测试点|有效耗时62:ms

提交代码:

program p78pp78;

var

a:array[1..100]of char;

s:string;

f:char;

n,i,j,k,p,q,c:longint;

begin

readln(s);

readln(k);

n:=length(s);

c:=n;

for i:=1 to k do

read(a[i]);

writeln(s);

for i:=1 to k do

begin

for j:=1 to c do

if a[i]=s[j] then

begin

delete(s,j,1);

break;

end;

if j<c div 2+c mod 2 then

begin

p:=1;

q:=j-1;

end

else

begin

p:=j;

q:=c-1;

end;

while p<q do

begin

f:=s[p];

s[p]:=s[q];

s[q]:=f;

inc(p);

dec(q);

end;

c:=c-1;

for j:=1 to c do

write(s[j]);

if i<k then writeln

end;

end.

#1 飞雪天涯@2008-11-12 07:23:00
回复 删除
#include<iostream>

#include<string>

using namespace std;

int main (void){

string queue;

cin>>queue;

// cout<<queue<<endl;

int n;

cin>>n;

for (int i=0;i<n;i++){

cout<<queue<<endl;

char c;

cin>>c;

int pos=queue.find(c);

string left,right;

left=queue.substr(0,pos);

right=queue.substr(pos+1,queue.size()-pos-1);

string s;

if (left.size()<=right.size()){

s=left;

for (int i=0,j=s.size()-1;i<j;i++,j--){

char temp;

temp=s[i];

s[i]=s[j];

s[j]=temp;

}

s=s+right;

}

else{

s=right;

for (int i=0,j=s.size()-1;i<j;i++,j--){

char temp;

temp=s[i];

s[i]=s[j];

s[j]=temp;

}

s=left+s;

}

queue=s;

}

cout<<queue;

// while(1);

return 0;

}

#2 李山山@2008-11-12 07:29:00
回复 删除
感谢[color=blue]飞雪天涯[/color],但我是学[color=red]P[/color]的,看不懂啊![color=green]囧[/color]
#3 李山山@2008-11-12 07:50:00
回复 删除
顶一下!
#4 飞雪天涯@2008-11-12 07:53:00
回复 删除
[color=red]再学一下C++即可!!![/color]
#5 李山山@2008-11-14 01:09:00
回复 删除
晕~~~
查看更多回复
提交回复