結果
問題 | No.59 鉄道の旅 |
ユーザー |
![]() |
提出日時 | 2015-08-20 02:25:19 |
言語 | Java (openjdk 23) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,643 bytes |
コンパイル時間 | 2,741 ms |
コンパイル使用メモリ | 79,084 KB |
実行使用メモリ | 56,796 KB |
最終ジャッジ日時 | 2024-12-24 21:49:22 |
合計ジャッジ時間 | 7,723 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 8 WA * 4 |
ソースコード
import java.util.*;import java.io.*;import java.awt.geom.*;import java.math.*;public class Main {static final Scanner in = new Scanner(System.in);static final PrintWriter out = new PrintWriter(System.out,false);static final int SIZE = 1000001;static void solve() {int n = in.nextInt();int k = in.nextInt();FenwickTree ft = new FenwickTree(SIZE);while (n-- > 0) {int w = in.nextInt();if (w > 0) {if (ft.get(SIZE) - ft.get(w-1) < k) ft.add(w,SIZE,1);} else {w = -w;if (ft.get(w) - ft.get(w-1) > 0) ft.add(w,SIZE,-1);}}out.println(ft.get(SIZE));}public static void main(String[] args) {long start = System.currentTimeMillis();solve();out.flush();long end = System.currentTimeMillis();//trace(end-start + "ms");in.close();out.close();}static void trace(Object... o) { System.out.println(Arrays.deepToString(o));}}class FenwickTree {public static final long MOD = 1_000_000_007;public final int length;private long[] bit;public FenwickTree(int length) {this.length = length;this.bit = new long[length+2];}public void add(int begin, int end, long n) {add(begin, n);add(end, (MOD - n)%MOD);}private void add(int idx, long n) {idx++;while (idx <= length) {bit[idx] = (bit[idx] + n)%MOD;idx += idx&-idx;}}public long get(int idx) {idx++;long ret = 0;while (idx > 0) {ret = (ret + bit[idx])%MOD;idx -= idx&-idx;}return ret;}public String toString() {long[] val = new long[length];for (int i=0; i<length; i++) val[i] = get(i);return Arrays.toString(val);}}