提出 #53065430
ソースコード 拡げる
#include<iostream>
#include<string>
#include<queue>
#include<vector>
#include<cassert>
#include<random>
#include<set>
#include<map>
#include<algorithm>
#include<list>
using namespace std;
typedef long long ll;
const int inf=1<<30;
const ll INF=1LL<<60;
int main(){
int N;
cin>>N;
string S;
cin>>S;
list<int> my_list;
my_list.push_back(0);
/*
listの仕様ではinsert()はイテレータの直前に要素を追加する。
返り値は追加した要素を示すイテレータ
Lの場合はイテレータの場所に入れる。
Rの場合は一つ先に入れるためnext()を使う
*/
auto it=my_list.begin();
for(int i=1;i<=N;i++){
if(S[i-1]=='L'){
it=my_list.insert(it,i);
}else{
it=my_list.insert(next(it),i);
}
}
it=my_list.begin();
for(int i=0;i<=N;i++){
cout<<*it<<(i==N?'\n':' ');
it++;
}
}
提出情報
| 提出日時 | |
|---|---|
| 問題 | D - LR insertion |
| ユーザ | HIcoder |
| 言語 | C++ 20 (gcc 12.2) |
| 得点 | 400 |
| コード長 | 999 Byte |
| 結果 | AC |
| 実行時間 | 54 ms |
| メモリ | 19992 KiB |
ジャッジ結果
| セット名 | Sample | All | ||||
|---|---|---|---|---|---|---|
| 得点 / 配点 | 0 / 0 | 400 / 400 | ||||
| 結果 |
|
|
| セット名 | テストケース |
|---|---|
| Sample | example0.txt, example1.txt |
| All | 000.txt, 001.txt, 002.txt, 003.txt, 004.txt, 005.txt, 006.txt, 007.txt, 008.txt, 009.txt, 010.txt, 011.txt, 012.txt, 013.txt, 014.txt, 015.txt, example0.txt, example1.txt |
| ケース名 | 結果 | 実行時間 | メモリ |
|---|---|---|---|
| 000.txt | AC | 1 ms | 3516 KiB |
| 001.txt | AC | 1 ms | 3444 KiB |
| 002.txt | AC | 1 ms | 3648 KiB |
| 003.txt | AC | 1 ms | 3660 KiB |
| 004.txt | AC | 47 ms | 19992 KiB |
| 005.txt | AC | 48 ms | 19964 KiB |
| 006.txt | AC | 49 ms | 19948 KiB |
| 007.txt | AC | 49 ms | 19888 KiB |
| 008.txt | AC | 1 ms | 3604 KiB |
| 009.txt | AC | 1 ms | 3532 KiB |
| 010.txt | AC | 2 ms | 3700 KiB |
| 011.txt | AC | 1 ms | 3804 KiB |
| 012.txt | AC | 52 ms | 19972 KiB |
| 013.txt | AC | 54 ms | 19944 KiB |
| 014.txt | AC | 53 ms | 19924 KiB |
| 015.txt | AC | 52 ms | 19984 KiB |
| example0.txt | AC | 2 ms | 3600 KiB |
| example1.txt | AC | 1 ms | 3472 KiB |