結果
問題 | No.879 Range Mod 2 Query |
ユーザー | HIR180 |
提出日時 | 2019-09-07 00:53:48 |
言語 | C++14 (gcc 12.3.0 + boost 1.83.0) |
結果 |
AC
|
実行時間 | 1,239 ms / 3,000 ms |
コード長 | 1,137 bytes |
コンパイル時間 | 344 ms |
コンパイル使用メモリ | 36,824 KB |
実行使用メモリ | 5,376 KB |
最終ジャッジ日時 | 2024-06-24 23:37:55 |
合計ジャッジ時間 | 10,758 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 2 ms
5,248 KB |
testcase_01 | AC | 2 ms
5,376 KB |
testcase_02 | AC | 2 ms
5,376 KB |
testcase_03 | AC | 2 ms
5,376 KB |
testcase_04 | AC | 2 ms
5,376 KB |
testcase_05 | AC | 2 ms
5,376 KB |
testcase_06 | AC | 2 ms
5,376 KB |
testcase_07 | AC | 2 ms
5,376 KB |
testcase_08 | AC | 2 ms
5,376 KB |
testcase_09 | AC | 1 ms
5,376 KB |
testcase_10 | AC | 2 ms
5,376 KB |
testcase_11 | AC | 587 ms
5,376 KB |
testcase_12 | AC | 333 ms
5,376 KB |
testcase_13 | AC | 420 ms
5,376 KB |
testcase_14 | AC | 439 ms
5,376 KB |
testcase_15 | AC | 347 ms
5,376 KB |
testcase_16 | AC | 1,096 ms
5,376 KB |
testcase_17 | AC | 1,183 ms
5,376 KB |
testcase_18 | AC | 1,166 ms
5,376 KB |
testcase_19 | AC | 1,183 ms
5,376 KB |
testcase_20 | AC | 1,193 ms
5,376 KB |
testcase_21 | AC | 1,239 ms
5,376 KB |
ソースコード
#pragma GCC optimize("Ofast,unroll-loops,no-stack-protector,unsafe-math-optimizations") #pragma GCC target("avx") #include <stdio.h> inline int read_char() { static char buf[1 << 16], *ptr = buf, *end_ptr = buf; if (ptr == end_ptr) { int len = fread(buf, 1, sizeof(buf), stdin); if (len <= 0) return EOF; ptr = buf; end_ptr = buf + len; } return *ptr++; } inline int read_int() { int ch; bool sg = 0; do { ch = read_char(); if (ch == '-') sg = 1; } while (ch < '0' || ch > '9'); int x = ch - '0'; while (true) { ch = read_char(); if (ch < '0' || ch > '9') break; x = x * 10 + ch - '0'; } return (sg?-x:x); } long long a[100005],ans; int n,m,t,l,r,x; int main(){ n=read_int(); m=read_int(); for(int i=1;i<=n;i++) a[i]=read_int(); for(int i=1;i<=m;i++){ t=read_int(); l=read_int(); r=read_int(); if(t == 1){ for(int j=l;j<=r;j++) a[j] &= 1; } else if(t == 3){ ans=0; for(int j=l;j<=r;j++) ans+=a[j]; printf("%lld\n",ans); } else{ x=read_int(); for(int j=l;j<=r;j++) a[j] += x; } } }