社区讨论

求找错!2MLE 4WA 4AC!

P1808单词分类参与者 3已保存回复 3

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
3 条
当前快照
1 份
快照标识符
@mi5hpa9c
此快照首次捕获于
2025/11/19 12:15
4 个月前
此快照最后确认于
2025/11/19 12:15
4 个月前
查看原帖
我的内心是崩溃的……%>_<%
…………
…………
也是懵逼的…………
为什么!
贴程序了
PASCAL
var     i,j,n,ans:longint;
        word:string;
        get:array[1..100000] of string;

procedure swapstr(var x,y:string);
var     bo:string;
begin
        bo:=x;
        x:=y;
        y:=bo;
end;

procedure swapchr(var x,y:char);
var     bo:char;
begin
        bo:=x;
        x:=y;
        y:=bo;
end;

procedure qsortstr(l,r:longint);
var     i,j:longint;
        mid:char;
begin
        i:=l;j:=r;mid:=word[(l+r) div 2];
        repeat
          while word[i]<mid do inc(i);
          while word[j]>mid do dec(j);
          if i<=j then
            begin
              swapchr(word[i],word[j]);
              inc(i);
              dec(j);
            end;
        until i>j;
        if i<r then qsortstr(i,r);
        if l<j then qsortstr(l,j);
end;

procedure qsortarr(l,r:longint);
var     i,j:longint;
        mid:string;
begin
        i:=l;j:=r;mid:=get[(l+r) div 2];
        repeat
          while get[i]<mid do inc(i);
          while get[j]>mid do dec(j);
          if i<=j then
            begin
              swapstr(get[i],get[j]);
              inc(i);
              dec(j);
            end;
        until i>j;
        if i<r then qsortarr(i,r);
        if j<l then qsortarr(l,j);
end;

begin
        //assign(input,'word.in');
        //assign(output,'word.out');
        //reset(input);
        //rewrite(output);
        readln(n);
        ans:=1;
        for i:=1 to n do
          begin
            readln(word);
            qsortstr(1,length(word));
            get[i]:=word;
          end;
        qsortarr(1,n);
        //*
        for i:=2 to n do
          if get[i]<>get[i-1] then inc(ans);
        //*
        writeln(ans);
        //close(input);
        //close(output);
end.
求助!

回复

3 条回复,欢迎继续交流。

正在加载回复...