結果
問題 | No.59 鉄道の旅 |
ユーザー |
![]() |
提出日時 | 2015-03-21 14:45:56 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 24 ms / 5,000 ms |
コード長 | 1,522 bytes |
コンパイル時間 | 1,007 ms |
コンパイル使用メモリ | 84,168 KB |
実行使用メモリ | 7,296 KB |
最終ジャッジ日時 | 2024-12-24 20:33:32 |
合計ジャッジ時間 | 1,710 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 12 |
コンパイルメッセージ
main.cpp: In function ‘int main()’: main.cpp:59:14: warning: ignoring return value of ‘int scanf(const char*, ...)’ declared with attribute ‘warn_unused_result’ [-Wunused-result] 59 | scanf("%d",&w); | ~~~~~^~~~~~~~~
ソースコード
#include<iostream>#include<sstream>#include<cstdio>#include<cstring>#include<algorithm>#include<string>#include<vector>#include<cmath>#include<set>#include<map>#include<stack>#include<queue>#include<numeric>#include<functional>#include<complex>using namespace std;#define BET(a,b,c) ((a)<=(b)&&(b)<(c))#define FOR(i,n) for(int i=0,i##_end=(int(n));i<i##_end;i++)#define SZ(x) (int)(x.size())#define ALL(x) (x).begin(),(x).end()#define MP make_pair#define FOR_EACH(it,v) for(__typeof(v.begin()) it=v.begin(),it_end=v.end() ; it != it_end ; it++)typedef vector<int> VI;typedef vector<VI> VVI;template<typename T>struct BIT{vector<T> data;BIT(int size) :data(size + 1){}T sum(T a, T b){ // [a..b]if (a == 0){T val = 0;for (; b >= 0; b = (b&(b + 1)) - 1) val += data[b];return val;}else{return sum(0, b) - sum(0, a - 1);}}void add(int k, T val){for (; k < (int)data.size(); k |= k + 1) {data[k] += val;}}};int main(){int N,K;cin>>N>>K;int maxSize = 1000000+10;BIT<int> bit(maxSize + 1);FOR(i,N){int w;scanf("%d",&w);if(w > 0){if(bit.sum(w, maxSize) < K) {bit.add(w, 1);}}else {if(bit.sum(-w, -w) > 0){bit.add(-w, -1);}}}cout<<bit.sum(0, maxSize)<<endl;return 0;}