九度 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);
}
}
参考了
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);
}
}
相关文章推荐
- 九度题目1486:False coin
- 九度题目1486:False coin
- 九度OJ 题目1074:对称平方数
- 九度OJ题目1023:EXCLE排序
- 九度OJ题目1034:寻找大富翁
- 九度OJ 题目1084:整数拆分
- 九度OJ 题目1482:玛雅人的密码
- 九度OJ 题目1058:反序输出
- 九度OJ 题目1032:ZOJ
- 九度OJ 题目1092:Fibonacci
- 九度OJ 题目1029:魔咒词典
- 九度oj 题目1023:EXCEL排序 【ZJU2007考研机试题4】
- 九度 oj 题目1086:最小花费
- 【学习笔记】〖九度OJ〗题目1161:Repeater
- 九度 oj 题目1119:Integer Inquiry
- 九度OJ题目1456:胜利大逃亡
- 九度 oj 题目1111:单词替换
- 九度OJ-题目1164:旋转矩阵-模拟
- 九度oj 题目1005:Graduate Admission 【ZJU2011考研机试题4】
- 【学习笔记】〖九度OJ〗题目1443:Tr A