結果
| 問題 | No.2745 String Swap Battle |
| コンテスト | |
| ユーザー |
tails
|
| 提出日時 | 2024-04-21 01:35:57 |
| 言語 | cLay (20241019-1) |
| 結果 |
AC
|
| 実行時間 | 9 ms / 2,000 ms |
| コード長 | 644 bytes |
| コンパイル時間 | 2,550 ms |
| コンパイル使用メモリ | 176,220 KB |
| 実行使用メモリ | 7,424 KB |
| 最終ジャッジ日時 | 2024-10-12 23:57:51 |
| 合計ジャッジ時間 | 3,380 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 18 |
ソースコード
ll@n;
string@ss[n];
rep(i,n){
string&s=ss[i];
char b='~';
char w=0;
int o=0;
int bj=-1;
int c;
int j;
for(j=0;c=s[j];++j){
if(c==w){
o=1;
}
if(c>w){
w=c;
}
if(c<w&&c<=b){
b=c;
bj=j;
}
}
if(bj>=0){
for(int j=0;c=s[j];++j){
if(c>b){
swap(s[j],s[bj]);
break;
}
}
}
else if(!o){
swap(s[j-1],s[j-2]);
}
}
int q[n];
int qn=n;
rep(i,n){
q[i]=i;
}
for(int j=0;;++j){
int b='~';
rep(i,qn){
b<?=ss[q[i]][j];
}
int w=0;
rep(i,qn){
if(ss[q[i]][j]==b){
q[w++]=q[i];
}
}
qn=w;
if(!b){
break;
}
}
int r=0;
rep(i,n){
if(r<qn&&q[r]==i){
++r;
wt(n+1-qn);
}else{
wt('0');
}
}
tails