# |
Submission time |
Handle |
Problem |
Language |
Result |
Execution time |
Memory |
482028 |
2021-10-22T16:52:06 Z |
Bench0310 |
Matching (CEOI11_mat) |
C++17 |
|
939 ms |
39352 KB |
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1000000;
int tree[2097149+1];
int sz[2097149+1];
const int p=1000037;
const int mod=1000000007;
int add(int a,int b){return a+b-(a+b>=mod?mod:0);}
int mul(int a,int b){return (ll(a)*b)%mod;}
int pw[N+1];
void update(int idx,int l,int r,int pos,int val,int s)
{
if(l==r)
{
tree[idx]=val;
sz[idx]=s;
}
else
{
int m=(l+r)/2;
if(pos<=m) update(2*idx,l,m,pos,val,s);
else update(2*idx+1,m+1,r,pos,val,s);
tree[idx]=add(mul(pw[sz[2*idx+1]],tree[2*idx]),tree[2*idx+1]);
sz[idx]=sz[2*idx]+sz[2*idx+1];
}
}
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
int n,m;
cin >> m >> n;
pw[0]=1;
for(int i=1;i<=m;i++) pw[i]=mul(pw[i-1],p);
int r=0;
int s=0;
for(int i=1;i<=m;i++)
{
int b;
cin >> b;
r=add(mul(p,r),b);
s=add(s,pw[i-1]);
}
array<int,2> h[n];
for(int i=0;i<n;i++)
{
cin >> h[i][0];
h[i][1]=i+1;
}
sort(h,h+n);
int pos[n+1];
for(int i=0;i<n;i++) pos[h[i][1]]=i+1;
auto add_t=[&](int i){update(1,1,n,pos[i],i,1);};
auto rm_t=[&](int i){update(1,1,n,pos[i],0,0);};
for(int i=1;i<m;i++) add_t(i);
vector<int> res;
for(int i=m;i<=n;i++)
{
add_t(i);
if(tree[1]==r) res.push_back(i-m+1);
rm_t(i-m+1);
r=add(r,s);
}
cout << res.size() << "\n";
for(int a:res) cout << a << " ";
cout << "\n";
return 0;
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
332 KB |
Output is correct |
2 |
Correct |
0 ms |
332 KB |
Output is correct |
3 |
Correct |
1 ms |
332 KB |
Output is correct |
4 |
Correct |
0 ms |
332 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
332 KB |
Output is correct |
2 |
Correct |
1 ms |
332 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
11 ms |
972 KB |
Output is correct |
2 |
Correct |
10 ms |
972 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
11 ms |
1100 KB |
Output is correct |
2 |
Correct |
11 ms |
1100 KB |
Output is correct |
3 |
Correct |
2 ms |
332 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
114 ms |
6620 KB |
Output is correct |
2 |
Correct |
123 ms |
6672 KB |
Output is correct |
3 |
Correct |
158 ms |
6984 KB |
Output is correct |
4 |
Correct |
149 ms |
6940 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
124 ms |
7304 KB |
Output is correct |
2 |
Correct |
183 ms |
6788 KB |
Output is correct |
3 |
Correct |
128 ms |
7160 KB |
Output is correct |
4 |
Correct |
134 ms |
8912 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
121 ms |
7292 KB |
Output is correct |
2 |
Correct |
123 ms |
6852 KB |
Output is correct |
3 |
Correct |
135 ms |
6812 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
738 ms |
30124 KB |
Output is correct |
2 |
Correct |
723 ms |
32360 KB |
Output is correct |
3 |
Correct |
714 ms |
25948 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
673 ms |
29056 KB |
Output is correct |
2 |
Correct |
939 ms |
28456 KB |
Output is correct |
3 |
Correct |
735 ms |
32220 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
763 ms |
29560 KB |
Output is correct |
2 |
Correct |
739 ms |
39352 KB |
Output is correct |
3 |
Correct |
833 ms |
28484 KB |
Output is correct |
4 |
Correct |
516 ms |
32396 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
732 ms |
30040 KB |
Output is correct |
2 |
Correct |
789 ms |
28940 KB |
Output is correct |
3 |
Correct |
318 ms |
14736 KB |
Output is correct |
4 |
Correct |
586 ms |
32068 KB |
Output is correct |