您的位置:首页 > 其它

九度 oj 题目1486:False coin

2017-01-19 16:56 351 查看
http://ac.jobdu.com/problem.php?pid=1486

参考了 

1. http://blog.csdn.net/huahua520amy/article/details/9822561

2.http://blog.csdn.net/u011255131/article/details/53580630

code 简化于 参考2

#include <stdio.h>
#include <cstring>
#include <cstdlib>

int main(){
int c[2002],left[1001],right[1001];
int *pt,*pl,*pr;
int n,k,pi;
char str[2];
//freopen("in/1486.in","r",stdin);
while(scanf("%d%d",&n,&k)!=EOF){
int max_value = -1 , idx = 0;
memset(c,0,sizeof(c));
while(k--){
scanf("%d",&pi);
for (int i = 0; i < pi; ++i) {
scanf("%d",&left[i]);
}
for (int i = 0; i < pi; ++i) {
scanf("%d",&right[i]);
}
scanf("%s",str);
pl = left; pr = right;
switch(str[0]){
case '<':
pt = pl;
pl = pr;
pr = pt;
case '>':
pt = pl;
for (int i = 0; i < pi; ++i,++pt) {
if (c[*pt] != 101) {
if(c[*pt] <=0) --c[*pt];
else c[*pt] = 101;
}
}
pt = pr;
for (int i = 0; i < pi; ++i,++pt) {
if (c[*pt] != 101) {
if(c[*pt] >=0) ++c[*pt];
else c[*pt] = 101;
}
}
break;
case '=':
pt = pl;
for (int i = 0; i < pi; ++i,++pt) {
c[*pt] = 101;
}
pt = pr;
for (int i = 0; i < pi; ++i,++pt) {
c[*pt] = 101;
}
break;
}
}
for (int i = 1; i <=n; ++i) {
if(c[i] == 101) continue;
if (abs(c[i]) > max_value) {
max_value = abs(c[i]);
idx = i;
}else if (abs(c[i]) == max_value ) {
idx = 0;
}
}

printf("%d\n",idx);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: