您的位置:首页 > 其它

Codeforces Round #354 (Div. 2)

2016-05-28 23:02 183 查看

5/5

水了场CF,写个水水地题解~~

题A CodeForces 676A

题意:给你一个排列,问你交换一次,最大最小位置最远是多少?

题解:暴力交换,暴力算,反正数据小.偷懒被hack更惨!!

/*zhen hao*/
#include <bits/stdc++.h>
using namespace std;

typedef long long ll;
const int maxn = 1e5 + 10, mod = 100003619;
int a[maxn], t[maxn], n, k;
char s[110];

int main() {
//  freopen("case.in", "r", stdin);
cin >> n >> k;
int ok = 0, c = 0;
for (int i = 0; i <= n; i++) {
scanf("%s", s);
if (s[0] == '?') ok = 1;
else {
t[i] = 1;
sscanf(s, "%d", a + i);
c ^= 1;
}
}
if (k == 0) {
if (t[0]) puts(a[0] == 0 ? "Yes" : "No");
else puts(c & 1 ? "Yes" : "No");
} else {
if (ok) puts(n & 1 ? "Yes" : "No");
else {
ll res = 0;
for (int i = n; i >= 0; i--) {
res = res * k + a[i];
res %= mod;
}
puts(res == 0 ? "Yes" : "No");
}
}
return 0;
}


代码君
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: