Description

考虑正整数集合,现在有n组人依次来取数,假设第i组来了x人,他们每个取的数一定是x的倍数,并且是还剩下的最小的x个。

正整数中有m个数被标成了幸运数,问有哪些人取到了幸运数。

Input

第一行一个正整数m (m<=1,000,000),下面m行每行一个正整数x (x<=1,000,000),表示x是一个幸运数。

接下来一行一个正整数n (n<=1,000,000),下面n行每行一个正整数x (x<=1,000,000),表示这一组来了x个人。

Output

第一行输出一个非负整数k,表示k个人取到了幸运数,下面k行依次表示取到幸运数的人的编号,人按照来的顺序从1开始编号。

Sample Input

4

1

6

8

16

3

4

2

4

Sample Output

3

2

4

6

HINT

总共来了10个人,他们取走的数依次是4 8 12 16 2 6 20 24 28 32。

第2、4、6个人取到的是幸运数8、16、6。

(别把这题想太难,其实很水的)


果然是道水题。。。我想多了。。。

我们开个数组v[],v[i]表示人群i现在取到哪个数,然后就是暴力跳了。。。

/*program from Wolfycz*/
#include<cmath>
#include<cstdio>
#include<vector>
#include<cstring>
#include<iostream>
#include<algorithm>
#define inf 0x7f7f7f7f
using namespace std;
typedef long long ll;
typedef unsigned int ui;
typedef unsigned long long ull;
inline char gc(){
static char buf[1000000],*p1=buf,*p2=buf;
return p1==p2&&(p2=(p1=buf)+fread(buf,1,1000000,stdin),p1==p2)?EOF:*p1++;
}
inline int frd(){
int x=0,f=1; char ch=gc();
for (;ch<'0'||ch>'9';ch=gc()) if (ch=='-') f=-1;
for (;ch>='0'&&ch<='9';ch=gc()) x=(x<<3)+(x<<1)+ch-'0';
return x*f;
}
inline int read(){
int x=0,f=1; char ch=getchar();
for (;ch<'0'||ch>'9';ch=getchar()) if (ch=='-') f=-1;
for (;ch>='0'&&ch<='9';ch=getchar()) x=(x<<3)+(x<<1)+ch-'0';
return x*f;
}
inline void print(int x){
if (x<0) putchar('-'),x=-x;
if (x>9) print(x/10);
putchar(x%10+'0');
}
const int N=1e6;
int f[N+10];
ll Ans[N+10];
bool vis[N+10],lucky[N+10];
int main(){
int n=read(),cnt=0;
for (int i=1;i<=n;i++) lucky[read()]=1;
for (int i=1;i<=N;i++) f[i]=i;
int k=read(); ll tmp=0;
for (int i=1;i<=k;i++){
int x=read();
if (f[x]>N){
tmp+=x;
continue;
}
for (int j=1;j<=x;j++){
Again:
if (f[x]>N){
tmp+=x-j+1;
break;
}
if (vis[f[x]]){
f[x]+=x;
goto Again;
}
++tmp;
if (lucky[f[x]]) Ans[++cnt]=tmp;
vis[f[x]]=1,f[x]+=x;
}
}
printf("%d\n",cnt);
sort(Ans+1,Ans+1+cnt);
for (int i=1;i<=cnt;i++) printf("%lld\n",Ans[i]);
}

最新文章

  1. synthesize的作用
  2. WPF程序将DLL嵌入到EXE的两种方法
  3. C#与Java对比学习:类型判断、类与接口继承、代码规范与编码习惯、常量定义
  4. float了的元素和内联元素不支持margin:auto
  5. Linq to DataTable 左连接
  6. uva 211(dfs)
  7. 《TCP/IP详解卷1:协议》第4章 ARP:地址解析协议-读书笔记
  8. How to debug PostgreSQL function with pgAdminIII
  9. Android渲染机制和丢帧分析
  10. SharePoint中 服务器发出意外响应。响应状态代码是&quot;500&quot;。
  11. Mac下配置Maven环境变量
  12. Laravel的console使用方法
  13. Android 扩大 View 的点击区域
  14. javaScript 删除本地cookie删不了
  15. Sigmoid函数简介
  16. Python选修课第一届Turtle绘图大赛田康林赵冰珂组
  17. 《Linux内核设计与实现》读书笔记四
  18. 网站程序CMS识别
  19. Oracle数据库mybatis 插入空值时报错(with JdbcType OTHER)
  20. eclipse中的项目鼠标右键卡死

热门文章

  1. kvm虚拟化学习笔记(四)之kvm虚拟机日常管理与配置
  2. hdu 1068 Girls and Boys(匈牙利算法求最大独立集)
  3. Java编程50题
  4. Pacemaker 安装与使用
  5. SGU - 311 Ice-cream Tycoon(线段树)
  6. Scrum 时间估算
  7. Android第一个个人APP(帐号助手)
  8. HDU 2896 病毒侵袭 (AC自己主动机)
  9. Node 即学即用 笔记 思维导图
  10. 【iOS系列】-iOS开发常用库文件总结