Submission #8622283
Source Code Expand
#include <bits/stdc++.h>
using namespace std;
typedef unsigned long long ull;
typedef long long ll;
typedef long double ld;
#define fastio() ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0)
#define loop(i,a,b) for(int i=a;i<b;i++)
#define test() int t;cin>>t;loop(test,1,t+1)
#define pb push_back
#define eb emplace_back
#define mkp make_pair
#define nl cout<<"\n"
#define sp cout<<" "
#define F first
#define S second
#define vi vector<int>
#define vl vector<ll>
#define pii pair<int,int>
#define pll pair<ll,ll>
#define vii vector<pii>
#define vll vector<pll>
#define MOD 1000000007
#define all(x) x.begin(),x.end()
template<class C> void min_self( C &a, C b ){ a = min(a,b); }
template<class C> void max_self( C &a, C b ){ a = max(a,b); }
ll mod( ll n, ll m=MOD ){ n%=m,n+=m,n%=m;return n; }
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
struct custom_hash {
static uint64_t splitmix64(uint64_t x) {
// http://xorshift.di.unimi.it/splitmix64.c
x += 0x9e3779b97f4a7c15;
x = (x ^ (x >> 30)) * 0xbf58476d1ce4e5b9;
x = (x ^ (x >> 27)) * 0x94d049bb133111eb;
return x ^ (x >> 31);
}
size_t operator()(uint64_t x) const {
static const uint64_t FIXED_RANDOM = chrono::steady_clock::now().time_since_epoch().count();
return splitmix64(x + FIXED_RANDOM);
}
};
unordered_map<long long, int, custom_hash> safe_map;
const int MAXN = 1e5+5;
const int LOGN = 21;
const ll INF = 1e14;
int dx[] = {1,0,-1,0};
int dy[] = {0,1,0,-1};
int main()
{
fastio();
ll n,k;
cin>>n>>k;
vector<ll>a(n), pref(n+1);
for(int i=0;i<n;i++)
{
cin>>a[i];
pref[i+1] = mod( pref[i] + a[i], k );
}
for(int i=1;i<=n;i++)
{
pref[i] = mod( pref[i]-i, k);
}
map<ll,ll>fr;
ll cur = 0;
ll ans = 0;
for(int i=n;i>=0;i--)
{
ans += fr[pref[i]];
fr[pref[i]]++;
cur++;
while( cur >= k )
{
fr[pref[i+k-1]]--;
cur--;
}
}
cout<<ans,nl;
return 0;
}
Submission Info
| Submission Time |
|
| Task |
E - Rem of Sum is Num |
| User |
gupta_samarth |
| Language |
C++14 (GCC 5.4.1) |
| Score |
500 |
| Code Size |
2162 Byte |
| Status |
AC |
| Exec Time |
183 ms |
| Memory |
15872 KiB |
Judge Result
| Set Name |
sample |
All |
| Score / Max Score |
0 / 0 |
500 / 500 |
| Status |
|
|
| Set Name |
Test Cases |
| sample |
sample01, sample02, sample03 |
| All |
few01, few02, few03, hand01, hand02, hand03, hand04, large01, large02, large03, max01, max02, max03, mid01, mid02, mid03, mid04, mid05, min01, min02, min03, sample01, sample02, sample03, small01, small02, small03, small04, small05 |
| Case Name |
Status |
Exec Time |
Memory |
| few01 |
AC |
23 ms |
3328 KiB |
| few02 |
AC |
29 ms |
3328 KiB |
| few03 |
AC |
30 ms |
3328 KiB |
| hand01 |
AC |
1 ms |
256 KiB |
| hand02 |
AC |
32 ms |
3328 KiB |
| hand03 |
AC |
34 ms |
3328 KiB |
| hand04 |
AC |
32 ms |
3456 KiB |
| large01 |
AC |
118 ms |
14464 KiB |
| large02 |
AC |
135 ms |
15872 KiB |
| large03 |
AC |
126 ms |
15360 KiB |
| max01 |
AC |
99 ms |
15872 KiB |
| max02 |
AC |
92 ms |
15872 KiB |
| max03 |
AC |
183 ms |
15872 KiB |
| mid01 |
AC |
2 ms |
256 KiB |
| mid02 |
AC |
2 ms |
384 KiB |
| mid03 |
AC |
2 ms |
384 KiB |
| mid04 |
AC |
2 ms |
384 KiB |
| mid05 |
AC |
2 ms |
384 KiB |
| min01 |
AC |
39 ms |
2560 KiB |
| min02 |
AC |
37 ms |
2432 KiB |
| min03 |
AC |
41 ms |
2560 KiB |
| sample01 |
AC |
1 ms |
256 KiB |
| sample02 |
AC |
1 ms |
256 KiB |
| sample03 |
AC |
1 ms |
256 KiB |
| small01 |
AC |
1 ms |
256 KiB |
| small02 |
AC |
1 ms |
256 KiB |
| small03 |
AC |
1 ms |
256 KiB |
| small04 |
AC |
1 ms |
256 KiB |
| small05 |
AC |
1 ms |
256 KiB |