結果

問題 No.151 セグメントフィッシング
コンテスト
ユーザー diginatu
提出日時 2015-02-13 00:39:54
言語 D
(dmd 2.112.0)
コンパイル:
dmd -fPIE -m64 -w -wi -O -release -inline -I/opt/dmd/src/druntime/import/ -I/opt/dmd/src/phobos -L-L/opt/dmd/linux/lib64/ -fPIC _filename_
実行:
./Main
結果
AC  
実行時間 481 ms / 5,000 ms
コード長 765 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 531 ms
コンパイル使用メモリ 88,720 KB
実行使用メモリ 7,720 KB
最終ジャッジ日時 2026-03-05 06:10:41
合計ジャッジ時間 3,666 ms
ジャッジサーバーID
(参考情報)
judge1 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 5
other AC * 19
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

import std.stdio, std.conv, std.math, std.string, std.range, std.array,
       std.algorithm;

void main(){
  auto buf = readln().strip().split().map!(to!int)().array;
  immutable N = buf[0];
  immutable Q = buf[1];

  immutable M = 2*N;
  auto map = new long[](M);
  
  foreach(immutable int t; 1 .. Q+1) {
    auto p = readln().strip().split();
    immutable x = p[0].to!string();
    immutable y = p[1].to!int();
    immutable z = p[2].to!int();
    if(x == "R") {
      map[(M-1-y+t) % M] += z;
    }else if(x == "L") {
      map[(y+t) % M] += z;
    }else if(x == "C") {
      long sum;
      foreach(immutable i; y+t .. z+t)
        sum += map[i%M];
      foreach(immutable i; M-1-z+t+1 .. M-1-y+t+1)
        sum += map[i%M];
      writeln(sum);
    }
  }

}
0