제출 #1358315

#제출 시각아이디문제언어결과실행 시간메모리
1358315ivazivaIntergalactic ship (IZhO19_xorsum)C++20
9 / 100
6 ms432 KiB
#include <bits/stdc++.h>

using namespace std;

#define MAXN 105
#define MOD 1000000007
#define int long long

int n,q;
int a[MAXN],pref[MAXN];
int arr[MAXN];
int l[MAXN],r[MAXN],x[MAXN];

int32_t main()
{
    cin>>n;for (int i=1;i<=n;i++) cin>>a[i];
    cin>>q;for (int i=0;i<q;i++) cin>>l[i]>>r[i]>>x[i];
    if (q<=10 and n<=100)
    {
        int answer=0;
        for (int mask=0;mask<(1<<q);mask++)
        {
            for (int i=1;i<=n;i++) arr[i]=a[i];
            int solution=0;
            for (int bit=0;bit<q;bit++)
            {
                if (!(mask&(1<<bit))) continue;
                for (int i=l[bit];i<=r[bit];i++) arr[i]^=x[bit];
            }
            pref[0]=0;for (int i=1;i<=n;i++) pref[i]=pref[i-1]+arr[i];
            for (int pos1=1;pos1<=n;pos1++)
            {
                for (int pos2=pos1;pos2<=n;pos2++)
                {
                    int suma=pref[pos2]-pref[pos1-1];
                    if (suma>=MOD) suma%=MOD;
                    suma=suma*suma;if (suma>=MOD) suma%=MOD;
                    solution+=suma;if (solution>=MOD) solution%=MOD;
                }
            }
            answer+=solution;if (answer>=MOD) answer%=MOD;
        }
        cout<<answer<<endl;return 0;
    }
    return 0;
}
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…