結果

問題 No.2879 Range Flip Queries
ユーザー kikueplkikuepl
提出日時 2024-09-08 12:58:15
言語 C++23(gcc13)
(gcc 13.2.0 + boost 1.83.0)
結果
AC  
実行時間 487 ms / 2,000 ms
コード長 2,552 bytes
コンパイル時間 3,828 ms
コンパイル使用メモリ 280,612 KB
実行使用メモリ 11,208 KB
最終ジャッジ日時 2024-09-08 12:58:32
合計ジャッジ時間 16,454 ms
ジャッジサーバーID
(参考情報)
judge2 / judge1
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 2 ms
6,816 KB
testcase_01 AC 2 ms
6,816 KB
testcase_02 AC 2 ms
6,940 KB
testcase_03 AC 146 ms
6,944 KB
testcase_04 AC 146 ms
6,940 KB
testcase_05 AC 147 ms
6,944 KB
testcase_06 AC 146 ms
6,948 KB
testcase_07 AC 148 ms
6,940 KB
testcase_08 AC 3 ms
6,944 KB
testcase_09 AC 2 ms
6,940 KB
testcase_10 AC 2 ms
6,940 KB
testcase_11 AC 2 ms
6,944 KB
testcase_12 AC 2 ms
6,940 KB
testcase_13 AC 370 ms
7,680 KB
testcase_14 AC 398 ms
8,192 KB
testcase_15 AC 263 ms
6,940 KB
testcase_16 AC 112 ms
6,940 KB
testcase_17 AC 269 ms
10,376 KB
testcase_18 AC 476 ms
10,964 KB
testcase_19 AC 476 ms
10,972 KB
testcase_20 AC 481 ms
10,868 KB
testcase_21 AC 486 ms
11,140 KB
testcase_22 AC 487 ms
10,904 KB
testcase_23 AC 474 ms
10,864 KB
testcase_24 AC 487 ms
10,992 KB
testcase_25 AC 485 ms
11,208 KB
testcase_26 AC 483 ms
11,076 KB
testcase_27 AC 486 ms
11,076 KB
testcase_28 AC 484 ms
11,004 KB
testcase_29 AC 358 ms
11,060 KB
testcase_30 AC 358 ms
10,984 KB
testcase_31 AC 361 ms
11,004 KB
testcase_32 AC 362 ms
11,060 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

/*****/
#include "bits/stdc++.h"
//#include "atcoder/all"
#define int long long

//using namespace atcoder;
using namespace std;
typedef long long ll;
typedef long double ld;
typedef pair<int, int> P;
//typedef pair<int,P> PP;
typedef pair<int, pair<int,int>> PP;
#define rep(i,a,b) for(int i=a;i<b;i++)
#define rrep(i,a,b) for(int i=a;i>=b;i--)
#define all(x) (x).begin(),(x).end()

const int MOD = 1e9 + 7;
const int mod = 998244353;
const double PI = 2 * acos(0.0);
template<class T>bool chmax(T& a, const T& b) { if (a < b) { a = b; return 1; } return 0; }
template<class T>bool chmin(T& a, const T& b) { if (b < a) { a = b; return 1; } return 0; }
template<class T>void vecout(vector<T> array, char sep = '\n') {for(auto &v : array) {cout << v << sep;}}
template<class T>int  vecsum(vector<T> array) {int res = 0; for(auto &v : array) res += v; return res;}

ll gcd(ll a, ll b) {return (a ? gcd(b%a, a) : b);};
ll lcm(ll a, ll b) {return (a*b / gcd(a,b));};
ll vecsum(vector<int> array) {int res = 0; for(int v : array) res += v; return res;};
const ll infl = 1LL << 60;
const int infi = 1 << 30;
const vector<P> D = {{1,0}, {0,1}, {-1,0}, {0,-1}};
const vector<int> di = {0, 1, 0, -1};
const vector<int> dj = {1, 0, -1, 0};

//using mint = modint1000000007;
//高速でnCkを求める
// mint fac[2007], finv[2007], inv[2007];

// void init(){
//     const int mMOD = mint::mod();
//     fac[0] = fac[1] = 1;
//     finv[0] = finv[1] = 1;
//     inv[1] = 1;
//     for (int i = 2; i < 2007; i++){
//         fac[i] = fac[i - 1] * i;
//         inv[i] = mMOD - inv[mMOD%i] * (mMOD / i);
//         finv[i] = finv[i - 1] * inv[i];
//     }   
// }
// mint nCk(int n, int k){
//     if (n < k) return 0;
//     if (n < 0 || k < 0) return 0;
//     return fac[n] * finv[k] * finv[n - k];
// }
// ////素因数分解をやるやつ
// set<int> prime_factors(int n) {
//     set<int> factors;
//     while (n % 2 == 0) {
//         factors.insert(2);
//         n /= 2;
//     }
//     for (int i = 3; i <= std::sqrt(n); i += 2) {
//         while (n % i == 0) {
//             factors.insert(i);
//             n /= i;
//         }
//     }
//     if (n > 2) {
//         factors.insert(n);
//     }
//     return factors;
// }

/*****/

signed main() {
	int n,q; cin >> n >> q;
	vector<int>a(n+2);
	rep(i,1,n+1) cin >> a[i];
	a[0] = a[n+1] = 0;
	vector<int> b(n+2,0);
	rep(_,0,q)
	{
		int l,r;
		cin >> l >> r;
		b[l]++;
		b[r+1]-=1;
	}
	rep(i,1,n+1)
	{
		b[i] += b[i-1];
		if(b[i]%2!=0)a[i]^=1;
		cout << a[i] << " ";
	}
	cout << endl;
	return 0;
}
0