# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
26574 | top34051 | Brunhilda’s Birthday (BOI13_brunhilda) | C++14 | 1000 ms | 119988 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include<bits/stdc++.h>
using namespace std;
#define inf (int)1e6
int n,m;
int p[100005];
int last[100005];
int pos[10000005];
int rec[10000005];
int mem[10000005];
main() {
int i,j,x;
scanf("%d%d",&n,&m);
for(i=1;i<=n;i++) {
scanf("%d",&p[i]);
x = p[i];
while(x<=10000000) {
rec[x] = i;
x += p[i];
}
pos[0]++;
last[i] = 0;
}
for(i=1,j=0;i<=10000000;i++) {
x = i;
while(rec[x]) {
pos[last[rec[x]]]--;
last[rec[x]] = i;
pos[last[rec[x]]]++;
x = x/p[rec[x]];
}
while(j<i && pos[j]==0) j++;
if(i==j) mem[i] = inf;
else mem[i] = mem[j] + 1;
}
while(m--) {
scanf("%d",&x);
if(mem[x]==inf) printf("oo\n");
else printf("%d\n",mem[x]);
}
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |