Cod sursă (job #578844)

Utilizator avatar RedFiree Alex Prohnitchi RedFiree IP ascuns
Problemă Beculețe (clasele 9-10) Compilator cpp-32 | 1,21 kb
Rundă lasm_20_01_2021_cl11 Status evaluat
Dată 20 ian. 2021 18:34:34 Scor 0
#pragma GCC optimize("Ofast")
#include <bits/stdc++.h>

typedef long long ll;

const ll mod=1e9+7;

const int dx[] = {0, 1, 0, -1};
const int dy[] = {1, 0, -1, 0};

#define rc(x)  return cout<<x<<"\n",0
#define sz(s)  (int) s.size()
#define pb push_back
#define mp make_pair
#define fr first
#define sc secondne all(x) x.begin(),x.end()
#define allr(x) x.rbegin(),x.rend()
#define PI 3.14159265358979

using namespace std;

ll bit[1600];
ll n,d,l,c,val,mask,mask2,limita;
 
void sett(int i, int x) {
    int mask;
    mask=~(1<<(31-(i&31)));
    bit[i>>5]=(bit[i>>5]&mask)^(x<<(31-(i&31)));
}
 
int ultim(int i) {
    return((bit[i>>5]>>(31-(i&31)))&1);
}
 
int main() {
//	ifstream cin("beculete.in");
//	ofstream cout("beculete.out");
	cin >> n >> d >> l >> c >> val;
	sett(0,1);
	for (int i=1; i<n; i++) {
        limita=(i>>5)+1;
        while (i==l&&d) {
			sett(c-1,val);
			cin >> l >> c >> val;
			d--;
		}
        for (int j=0; j<limita; j++) {
            mask=(bit[j]>>1)|(mask2<<31);
            mask2=bit[j]&1;
            bit[j]^=mask;
        }
	}
	while (d&&l==n) {
		sett(c-1,val);
		cin >> l >> c >> val;
		d--;
	}
	for (int i=0; i<n; i++)cout << ultim(i) << " ";
}