QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#108324#4322. rsraogps / 雪に咲く花Public123#Compile Error//C++144.6kb2023-05-24 15:50:232023-05-24 15:50:25

Judging History

This is the latest submission verdict.

  • [2023-08-10 23:21:45]
  • System Update: QOJ starts to keep a history of the judgings of all the submissions.
  • [2023-05-24 15:50:25]
  • Judged
  • [2023-05-24 15:50:23]
  • Submitted

answer

/*
60 + 0 + 100 + 64 = 224.
*/

#pragma GCC optimize(2) 
#pragma GCC optimize(3) 
#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,avx2,tune=native")
#include <bits/stdc++.h>
using namespace std;
//#define int long long
#define ll __int128
inline int read()
{
	int sum = 0, nega = 1;
	char ch = getchar();
	while (ch > '9'||ch < '0')
	{
	    if (ch == '-') nega = -1;
		ch = getchar();
	}
	while (ch <= '9' && ch >= '0') sum = sum * 10 + ch - '0', ch = getchar();
	return sum * nega;
}
char opt[40]; int cnt;
inline void Write(ll X) 
{
	cnt = 0;
	while(X) opt[++cnt] = X % 10 + '0', X /= 10; 
	while(cnt) putchar(opt[cnt]), cnt--; return ;
}
const int N = 1e6 + 9, M = 5e6 + 9, mod = 998244353;
int seed = 1, base = 1919810;
struct node
{
	int id, x; 
};
inline int Gcd(int x, int y) 
{
	if(y == 0) return x;
	return Gcd(y, x % y);
} 
int n, m, a[N], b[N], c[N], suma[N], sumb[N], sumc[N], nwa, nwb, nwc;
int A[N][21], B[N][21], C[N][21];
ll ans[M], tr[N << 2], tag[N << 2];
inline int lc(int p) {return p << 1;}
inline int rc(int p) {return p << 1 | 1;}
inline void push_up(int p) {tr[p] = tr[lc(p)] + tr[rc(p)]; return ;}
inline void push_down(int p, int l, int r) 
{
	if(tag[p]) 
	{
		int mid = (l + r) >> 1;
		tr[lc(p)] += tag[p] * (mid - l + 1), tr[rc(p)] += tag[p] * (r - mid); 
		tag[lc(p)] += tag[p], tag[rc(p)] += tag[p]; tag[p] = 0; 
	}
	return ;
}
inline void update(int l, int r, int p, int L, int R, ll v) 
{
	if(L > R) return ;
	if(L <= l && r <= R) {tr[p] += v * (r - l + 1), tag[p] += v; return ;}
	int mid = (l + r) >> 1; 
	push_down(p, l, r);
	if(mid >= L) update(l, mid, lc(p), L, R, v);
	if(mid < R) update(mid + 1, r, rc(p), L, R, v); 
	push_up(p); return ;
}
inline ll query(int l, int r, int p, int L, int R) 
{
	if(L <= l && r <= R) return tr[p]; 
	int mid = (l + r) >> 1; ll res = 0; push_down(p, l, r); 
	if(mid >= L) res += query(l, mid, lc(p), L, R);
	if(mid < R) res += query(mid + 1, r, rc(p), L, R); 
	return res; 
}
vector<node> G[N];
int pos;  
inline int upda(int x, int posa)
{
	if(nwa == suma[x]) return 0;
	int toa = posa;
	for (int i = 0; i <= 20; i++) 
		if((A[toa][i] & nwa) == nwa) toa -= (1 << i); 
		else {pos = i; break;}
	for (int i = pos - 1; i >= 0; i--) 
		if((A[toa][i] & nwa) == nwa) toa -= (1 << i); 
	return toa;
}
inline int updb(int x, int posb) 
{
	if(nwb == sumb[x]) return 0;
	int tob = posb; 
	for (int i = 0; i <= 20; i++) 
		if((B[tob][i] | nwb) == nwb) tob -= (1 << i); 
		else {pos = i; break;}
	for (int i = pos - 1; i >= 0; i--) 
		if((B[tob][i] | nwb) == nwb) tob -= (1 << i); 
	return tob;
}
inline int updc(int x, int posc) 
{
	if(nwc == sumc[x]) return 0;
	int toc = posc; 
	for (int i = 0; i <= 20; i++) 
		if(C[toc][i] % nwc == 0) toc -= (1 << i); 
		else {pos = i; break;}
	for (int i = pos - 1; i >= 0; i--) 
		if(C[toc][i] % nwc == 0) toc -= (1 << i); 	
	return toc; 
}
inline void work(int x) 
{
	int posa = x, posb = x, posc = x, toa = x, tob = x, toc = x;
	nwa = a[x], nwb = b[x], nwc = c[x];		
	toa = upda(x, posa), tob = updb(x, posb), toc = updc(x, posc); 
	int now = x;
	while(nwa != suma[x] || nwb != sumb[x] || nwc != sumc[x]) 
	{
 		int t = max(max(toa, tob), toc); 
		update(1, n, 1, t + 1, now, 1ll * nwa * nwb * nwc); now = t; 
		if(toa == t) nwa &= a[toa], posa = toa, toa = upda(x, toa); 
		if(tob == t) nwb |= b[tob], posb = tob, tob = updb(x, tob);
		if(toc == t) nwc = Gcd(nwc, c[toc]), posc = toc, toc = updc(x, toc);  
	} 
	update(1, n, 1, 1, now, 1ll * suma[x] * sumb[x] * sumc[x]); 
	for (auto v : G[x]) ans[v.id] = query(1, n, 1, v.x, x); 
	return ;
}
signed main()
{
//	freopen("qwq.out", "r", stdin);
//	freopen("1.out", "w", stdout);
	n = read(), m = read(); 
	for (int i = 1; i <= n; i++) a[i] = read();
	for (int i = 1; i <= n; i++) b[i] = read();
	for (int i = 1; i <= n; i++) c[i] = read();
	suma[1] = a[1], sumb[1] = b[1], sumc[1] = c[1];
	for (int i = 2; i <= n; i++) suma[i] = (suma[i - 1] & a[i]), sumb[i] = (sumb[i - 1] | b[i]), sumc[i] = Gcd(sumc[i - 1], c[i]);
	for (int i = 1; i <= m; i++) 
	{
		int l = read(), r = read(); 
		G[r].push_back(node{i, l}); 
	}
	for (int i = 1; i <= n; i++) 
	{
		A[i][0] = a[i], B[i][0] = b[i], C[i][0] = c[i];
		for (int j = 1; j <= 20; j++) 
			if((1 << j) <= i) 
			{
				A[i][j] = (A[i][j - 1] & A[i - (1 << (j - 1))][j - 1]); 
				B[i][j] = (B[i][j - 1] | B[i - (1 << (j - 1))][j - 1]); 
				C[i][j] = Gcd(C[i][j - 1], C[i - (1 << (j - 1))][j - 1]); 
			}
			else B[i][j] = (1 << 20) - 1, C[i][j] = 1; 
	}
	for (int i = 1; i <= n; i++) work(i);
	for (int i = 1; i <= m; i++) 
	{
		Write(ans[i]); puts("");
	}
	return 0;
}


Details

In file included from /usr/include/x86_64-linux-gnu/c++/11/bits/gthr.h:148,
                 from /usr/include/c++/11/ext/atomicity.h:35,
                 from /usr/include/c++/11/bits/ios_base.h:39,
                 from /usr/include/c++/11/ios:42,
                 from /usr/include/c++/11/istream:38,
                 from /usr/include/c++/11/sstream:38,
                 from /usr/include/c++/11/complex:45,
                 from /usr/include/c++/11/ccomplex:39,
                 from /usr/include/x86_64-linux-gnu/c++/11/bits/stdc++.h:54,
                 from answer.code:8:
/usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h:102:1: error: attribute value ‘tune=native’ was already specified in ‘target’ attribute
  102 | __gthrw(pthread_once)
      | ^~~~~~~
/usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h:102:1: error: attribute value ‘tune=native’ was already specified in ‘target’ attribute
/usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h:103:1: error: attribute value ‘tune=native’ was already specified in ‘target’ attribute
  103 | __gthrw(pthread_getspecific)
      | ^~~~~~~
/usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h:103:1: error: attribute value ‘tune=native’ was already specified in ‘target’ attribute
/usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h:104:1: error: attribute value ‘tune=native’ was already specified in ‘target’ attribute
  104 | __gthrw(pthread_setspecific)
      | ^~~~~~~
/usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h:104:1: error: attribute value ‘tune=native’ was already specified in ‘target’ attribute
/usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h:106:1: error: attribute value ‘tune=native’ was already specified in ‘target’ attribute
  106 | __gthrw(pthread_create)
      | ^~~~~~~
/usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h:106:1: error: attribute value ‘tune=native’ was already specified in ‘target’ attribute
/usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h:107:1: error: attribute value ‘tune=native’ was already specified in ‘target’ attribute
  107 | __gthrw(pthread_join)
      | ^~~~~~~
/usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h:107:1: error: attribute value ‘tune=native’ was already specified in ‘target’ attribute
/usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h:108:1: error: attribute value ‘tune=native’ was already specified in ‘target’ attribute
  108 | __gthrw(pthread_equal)
      | ^~~~~~~
/usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h:108:1: error: attribute value ‘tune=native’ was already specified in ‘target’ attribute
/usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h:109:1: error: attribute value ‘tune=native’ was already specified in ‘target’ attribute
  109 | __gthrw(pthread_self)
      | ^~~~~~~
/usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h:109:1: error: attribute value ‘tune=native’ was already specified in ‘target’ attribute
/usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h:110:1: error: attribute value ‘tune=native’ was already specified in ‘target’ attribute
  110 | __gthrw(pthread_detach)
      | ^~~~~~~
/usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h:110:1: error: attribute value ‘tune=native’ was already specified in ‘target’ attribute
/usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h:112:1: error: attribute value ‘tune=native’ was already specified in ‘target’ attribute
  112 | __gthrw(pthread_cancel)
      | ^~~~~~~
/usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h:112:1: error: attribute value ‘tune=native’ was already specified in ‘target’ attribute
/usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h:114:1: error: attribute value ‘tune=native’ was already specified in ‘target’ attribute
  114 | __gthrw(sched_yield)
      | ^~~~~~~
/usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h:114:1: error: attribute value ‘tune=native’ was already specified in ‘target’ attribute
/usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h:116:1: error: attribute value ‘tune=native’ was already specified in ‘target’ attribute
  116 | __gthrw(pthread_mutex_lock)
      | ^~~~~~~
/usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h:116:1: error: attribute value ‘tune=native’ was already specified in ‘target’ attribute
/usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h:117:1: error: attribute value ‘tune=native’ was already specified in ‘target’ attribute
  117 | __gthrw(pthread_mutex_trylock)
      | ^~~~~~~
/usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h:117:1: error: attribute value ‘tune=native’ was already specified in ‘target’ attribute
/usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h:119:1: error: attribute value ‘tune=native’ was already specified in ‘target’ attribute
  119 | __gthrw(pthread_mutex_timedlock)
      | ^~~~~~~
/usr/include/x86_64-linux-gnu/c++/11/bits/gthr-default.h:119:1: error: attribute value ‘tune=native’ was already specified in ‘target’ attribute
/usr/...