URAL 1032 A - Find a Multiple——抽屉原理+构造

网友投稿 492 2022-11-28

URAL 1032 A - Find a Multiple——抽屉原理+构造

URAL 1032 A - Find a Multiple——抽屉原理+构造

#include #include #include #include using namespace std;const int maxn = 2 * 1e4 + 10;int n, a[maxn], dp[maxn], vis[maxn];int main() { while (~scanf("%d", &n)) { if (n == 0) { printf("0\n"); continue; } memset(vis, 0, sizeof(vis)); for (int i = 1; i <= n; i++) scanf("%d", &a[i]); dp[1] = a[1]; if (dp[1] % n == 0) { printf("%d\n%d\n", 1, a[1]); continue; } vis[dp[1] % n] = 1; bool ok = false; for (int i = 2; i <= n; i++) { dp[i] = dp[i - 1] + a[i]; if (dp[i] % n == 0) { ok = true; printf("%d\n", i); for (int j = 1; j <= i; j++) printf("%d\n", a[j]); break; } else if (vis[dp[i] % n]) { ok = true; printf("%d\n", i - vis[dp[i] % n]); for (int j = vis[dp[i] % n] + 1; j <= i; j++) printf("%d\n", a[j]); break; } vis[dp[i] % n] = i; } if (!ok) printf("%d\n", 0); } return 0;}

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:HDU 1423 Greatest Common Increasing Subsequence——dp
下一篇:URAL - 1090 D - Inverse Order Pair——线段树求逆序数
相关文章

 发表评论

暂时没有评论,来抢沙发吧~