Submission #59370230
Source Code Expand
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const int N=5e5+10;
ll n,m,a[N];
ll s[N];
struct BIT{
ll t[N];
void update(int p,ll v){
++p;
for(;p<=m;p+=p&-p)t[p]+=v;
}
ll query(int p){
++p;
ll s=0;
for(;p;p-=p&-p)s+=t[p];
return s;
}
ll query(int l,int r){
// ++l,++r;
return query(r)-query(l-1);
}
};
BIT t1,t2;
ll ans=0;
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++)cin>>a[i];
for(int i=1;i<=n;i++)s[i]=(s[i-1]+a[i])%m;
for(int i=1;i<=n;i++) {
t1.update(s[i-1],s[i-1]);
t2.update(s[i-1],1);
ans+=1ll*t2.query(0,s[i])*s[i]-t1.query(0,s[i]);
// cerr<<ans<<'\n';
ans+=1ll*t2.query(s[i]+1,m-1)*s[i]-t1.query(s[i]+1,m-1)+t2.query(s[i]+1,m-1)*m;
// cerr<<ans<<'\n';
}
cout<<ans;
return 0;
}
Submission Info
| Submission Time | |
|---|---|
| Task | E - Mod Sigma Problem |
| User | Nicrobott |
| Language | C++ 20 (gcc 12.2) |
| Score | 475 |
| Code Size | 940 Byte |
| Status | AC |
| Exec Time | 63 ms |
| Memory | 9796 KiB |
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 475 / 475 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | 00_sample_01.txt, 00_sample_02.txt |
| All | 00_sample_01.txt, 00_sample_02.txt, 01_random_01.txt, 01_random_02.txt, 01_random_03.txt, 01_random_04.txt, 01_random_05.txt, 01_random_06.txt, 01_random_07.txt, 01_random_08.txt, 01_random_09.txt, 01_random_10.txt, 01_random_11.txt, 01_random_12.txt, 01_random_13.txt, 01_random_14.txt, 01_random_15.txt, 01_random_16.txt, 01_random_17.txt, 01_random_18.txt, 01_random_19.txt, 01_random_20.txt, 01_random_21.txt, 01_random_22.txt, 01_random_23.txt, 01_random_24.txt, 01_random_25.txt, 01_random_26.txt, 01_random_27.txt, 01_random_28.txt, 01_random_29.txt, 01_random_30.txt, 02_handmade_01.txt, 02_handmade_02.txt, 02_handmade_03.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 00_sample_01.txt | AC | 1 ms | 3540 KiB |
| 00_sample_02.txt | AC | 1 ms | 3680 KiB |
| 01_random_01.txt | AC | 3 ms | 3620 KiB |
| 01_random_02.txt | AC | 56 ms | 6608 KiB |
| 01_random_03.txt | AC | 24 ms | 4820 KiB |
| 01_random_04.txt | AC | 54 ms | 6616 KiB |
| 01_random_05.txt | AC | 7 ms | 4016 KiB |
| 01_random_06.txt | AC | 56 ms | 6576 KiB |
| 01_random_07.txt | AC | 53 ms | 6540 KiB |
| 01_random_08.txt | AC | 56 ms | 6648 KiB |
| 01_random_09.txt | AC | 11 ms | 4200 KiB |
| 01_random_10.txt | AC | 56 ms | 6668 KiB |
| 01_random_11.txt | AC | 51 ms | 7064 KiB |
| 01_random_12.txt | AC | 63 ms | 9732 KiB |
| 01_random_13.txt | AC | 38 ms | 8240 KiB |
| 01_random_14.txt | AC | 62 ms | 9792 KiB |
| 01_random_15.txt | AC | 29 ms | 5280 KiB |
| 01_random_16.txt | AC | 63 ms | 9708 KiB |
| 01_random_17.txt | AC | 18 ms | 4648 KiB |
| 01_random_18.txt | AC | 63 ms | 9744 KiB |
| 01_random_19.txt | AC | 62 ms | 9236 KiB |
| 01_random_20.txt | AC | 63 ms | 9780 KiB |
| 01_random_21.txt | AC | 52 ms | 6800 KiB |
| 01_random_22.txt | AC | 63 ms | 9736 KiB |
| 01_random_23.txt | AC | 24 ms | 5180 KiB |
| 01_random_24.txt | AC | 63 ms | 9776 KiB |
| 01_random_25.txt | AC | 29 ms | 7356 KiB |
| 01_random_26.txt | AC | 63 ms | 9744 KiB |
| 01_random_27.txt | AC | 59 ms | 7892 KiB |
| 01_random_28.txt | AC | 63 ms | 9796 KiB |
| 01_random_29.txt | AC | 20 ms | 5916 KiB |
| 01_random_30.txt | AC | 63 ms | 9796 KiB |
| 02_handmade_01.txt | AC | 1 ms | 3492 KiB |
| 02_handmade_02.txt | AC | 27 ms | 6068 KiB |
| 02_handmade_03.txt | AC | 63 ms | 9716 KiB |