codeforces 731B Coupons and Discounts

来源:互联网 发布:知乎日报启动图片 编辑:程序博客网 时间:2024/06/05 16:20
/*一开始并没有想清楚这题该怎么解出,走了许多弯路我一开始以为此题的关键在于数组中的偶数元素,如果偶元素的后面还是偶元素,前一个偶元素就能当作0来处理;后来又想,是不是前后两个数字,分别减去两者中的最小值然后想来许多许多的角度最后发现...还是我自己想得太多了,这题其实没那么麻烦,无非是,遇到偶数取余,遇到零判断下一个,若遇到奇数,先判断后面还有没有元素,没有则输出"NO"并退出循环,否则判断其后面是不是0.是0则输出"NO"并退出循环,否则当前判断的数组元素置0(之所以为0.是因为自减以后,肯定变成偶数了,偶数有一种优惠可用,那天的绝对可以买到).而它后面的元素自减...如此循环往复,直到遍历数组中所有的元素*/



#include <bits/stdc++.h>const int N = 200005;int num[N];using namespace std;int main(){int n;while (cin >> n){bool jud = true;for (int i = 0; i < n; i++)cin >> num[i];for (int i = 0; i < n; i++){if (num[i] >= 2)num[i] %= 2;if (num[i] == 0)continue;if (i == n - 1){jud = false; break;}else{if (num[i + 1]){num[i + 1]--;num[i] = 0;}else{jud = false; break;}}}if (jud) cout << "YES" << endl;else cout << "NO" << endl;}return 0;}


原创粉丝点击