結果
問題 | No.151 セグメントフィッシング |
ユーザー |
![]() |
提出日時 | 2015-02-14 13:06:37 |
言語 | Java (openjdk 23) |
結果 |
WA
|
実行時間 | - |
コード長 | 2,157 bytes |
コンパイル時間 | 3,441 ms |
コンパイル使用メモリ | 77,644 KB |
実行使用メモリ | 56,760 KB |
最終ジャッジ日時 | 2024-06-23 20:07:08 |
合計ジャッジ時間 | 22,171 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 5 |
other | AC * 7 WA * 12 |
ソースコード
import java.util.Scanner; public class SegmentFishing { /** * @param args */ public static void main(String[] args) throws Exception{ int N = NI(); int Q = NI(); long[][] seg = new long[N][2]; StringBuilder sb=new StringBuilder(); while(Q-->0){ char c = NC(); int y = NI(); int z = NI(); if(c=='L'){ seg[y][1]+=z; } else if(c=='R'){ seg[y][0]+=z; } else { int sum =0; for (int i = y; i < z; i++) { sum += seg[i][0]+seg[i][1]; } /* for (int i = 0; i < 2; i++) { for (int j = 0; j < seg.length; j++) { System.out.print(seg[j][i]+" "); } System.out.println(); } System.out.println(sum); */ sb.append(sum); sb.append('\n'); } move(seg); } System.out.print(sb); } static void move(long[][] seg){ long right = seg[seg.length-1][0]; long left = seg[0][1]; // right for (int i = seg.length-2; i >= 0; i--) { seg[i+1][0] = seg[i][0]; } // left for (int i = 1;i<seg.length;i++){ seg[i-1][1] = seg[i][1]; } seg[seg.length-1][1] = right; seg[0][0] = left; } static int NI(){ try { int c=System.in.read(),r=0; for(;c!='-'&&(c<'0'||'9'<c);)c=System.in.read(); if(c=='-') return -NI(); for(;'0'<=c&&c<='9';c=System.in.read()) r = r * 10 + c - '0'; return r; } catch (Exception e) { return -1; } } static char NC(){ try { char c=(char)System.in.read(); for(;c==' '||c=='\n';)c=(char)System.in.read(); return c; } catch (Exception e) { return 0; } } }