提出 #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
結果
AC × 2
AC × 18
セット名 テストケース
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